Skip to content

Commit 799153c

Browse files
committed
Remove duplicate code.
1 parent 00fd9c5 commit 799153c

File tree

2 files changed

+12
-25
lines changed

2 files changed

+12
-25
lines changed

contrib/plugins/bap-tracing/frame_buffer.c

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
#include "frame_buffer.h"
55
#include "trace_meta.h"
66

7-
static Frame *frame_new_std(uint64_t addr, int vcpu_id) {
7+
static Frame *frame_new_std(uint64_t addr, int vcpu_id, uint8_t *bytes,
8+
size_t bytes_len) {
89
Frame *frame = g_new(Frame, 1);
910
frame__init(frame);
1011

@@ -14,6 +15,9 @@ static Frame *frame_new_std(uint64_t addr, int vcpu_id) {
1415

1516
sframe->address = addr;
1617
sframe->thread_id = vcpu_id;
18+
sframe->rawbytes.len = bytes_len;
19+
sframe->rawbytes.data = g_malloc(bytes_len);
20+
memcpy(sframe->rawbytes.data, bytes, bytes_len);
1721

1822
OperandValueList *ol_in = g_new(OperandValueList, 1);
1923
operand_value_list__init(ol_in);
@@ -183,29 +187,10 @@ bool frame_buffer_new_frame_std(FrameBuffer *buf, unsigned int thread_id,
183187
if (frame_buffer_is_full(buf)) {
184188
return false;
185189
}
186-
Frame *frame = frame_new_std(0, -1);
187-
frame__init(frame);
188-
189-
StdFrame *stdframe = g_new(StdFrame, 1);
190-
std_frame__init(stdframe);
191-
frame->std_frame = stdframe;
192-
193-
stdframe->thread_id = thread_id;
194-
stdframe->address = vaddr;
195-
stdframe->rawbytes.len = bytes_len;
196-
stdframe->rawbytes.data = g_malloc(bytes_len);
197-
memcpy(stdframe->rawbytes.data, bytes, bytes_len);
198-
199-
OperandValueList *ol_in = g_new(OperandValueList, 1);
200-
operand_value_list__init(ol_in);
201-
ol_in->n_elem = 0;
202-
stdframe->operand_pre_list = ol_in;
203-
204-
OperandValueList *ol_out = g_new(OperandValueList, 1);
205-
operand_value_list__init(ol_out);
206-
ol_out->n_elem = 0;
207-
stdframe->operand_post_list = ol_out;
208-
190+
Frame *frame = frame_new_std(vaddr, thread_id, bytes, bytes_len);
191+
if (!frame) {
192+
return false;
193+
}
209194
buf->fbuf[buf->idx] = frame;
210195
return true;
211196
}

contrib/plugins/bap-tracing/tracing.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,9 @@ static void log_insn_reg_access(unsigned int vcpu_index, void *udata) {
135135

136136
// Open new one.
137137
Instruction *insn = udata;
138-
add_new_insn_frame(vcpu, vcpu_index, fbuf, insn);
138+
if (!add_new_insn_frame(vcpu, vcpu_index, fbuf, insn)) {
139+
err(1, "Failed to add new frame.\n");
140+
}
139141
add_pre_reg_state(vcpu, vcpu_index, current_regs, fbuf);
140142

141143
g_rw_lock_writer_unlock(&state.frame_buffer_lock);

0 commit comments

Comments
 (0)