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