From 3b7b98616268f2955067ccd11c63614e0f766422 Mon Sep 17 00:00:00 2001 From: pompolic <pompolic@special-circumstanc.es> Date: Sat, 15 Apr 2023 00:13:33 +0200 Subject: [PATCH] Proceed with refactor --- gdb-port/parser.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/gdb-port/parser.py b/gdb-port/parser.py index a725cc6..7fa2071 100644 --- a/gdb-port/parser.py +++ b/gdb-port/parser.py @@ -352,7 +352,7 @@ class ParserStack: # The memory allocated in the "frame" enclosed by current_event and the push event just prior current_frame_alloc = current_event[1] - previous_event[1] print("commit_at_pop: current_frame_alloc", current_frame_alloc) # DEBUG - # TODO: refactor this conditional + if len(ev_list) == 1: # Compare bytes allocated in arena to last known value, which will be the additional bytes allocated since reentering the stack frame #alloc_size = self.stack_events[ev_start][1] - current_event[1] @@ -361,18 +361,18 @@ class ParserStack: print("commit_at_pop: pop_allocs:", { current_event[2].address: current_frame_alloc }) # DEBUG return { current_event[2].address: current_frame_alloc } - # TODO: if len(ev_list) > 1 - bytes_list = [ev[1] for ev in ev_list] - - differences = map(lambda smaller, bigger: bigger-smaller, bytes_list[:-1], bytes_list[1:]) - pop_allocs = {} - for index, event in enumerate(ev_list[:-1]): - alloc = next(differences) - print("commit_at_pop: alloc:", alloc) # DEBUG - event[2].add_mem_use(int(self.arena), alloc) - pop_allocs[event[2].address] = pop_allocs.get(event[2].address, 0) + alloc - pop_allocs[current_event[2].address] = pop_allocs.get(current_event[2].address, 0) + current_frame_alloc - print("commit_at_pop: pop_allocs:", pop_allocs) # DEBUG + if len(ev_list) > 1: + bytes_list = [ev[1] for ev in ev_list] + + differences = map(lambda smaller, bigger: bigger-smaller, bytes_list[:-1], bytes_list[1:]) + pop_allocs = {} + for index, event in enumerate(ev_list[:-1]): + alloc = next(differences) + print("commit_at_pop: alloc:", alloc) # DEBUG + event[2].add_mem_use(int(self.arena), alloc) + pop_allocs[event[2].address] = pop_allocs.get(event[2].address, 0) + alloc + pop_allocs[current_event[2].address] = pop_allocs.get(current_event[2].address, 0) + current_frame_alloc + print("commit_at_pop: pop_allocs:", pop_allocs) # DEBUG self.committed = len(self.stack_events)-1 return pop_allocs -- GitLab