diff --git a/out_of_tree/parsed_notifications.zip b/out_of_tree/parsed_notifications.zip index 0d1a617..79eebe0 100644 Binary files a/out_of_tree/parsed_notifications.zip and b/out_of_tree/parsed_notifications.zip differ diff --git a/python/idc.py b/python/idc.py index a9185f7..f78eadf 100644 --- a/python/idc.py +++ b/python/idc.py @@ -790,32 +790,11 @@ def define_local_var(start, end, location, name): if m: # Location in the form of [bp+xx] register = ida_idp.str2reg(m.group(1)) - offset = int(m.group(2), 0) - frame = ida_frame.get_frame(func) - - if register == -1 or not frame: + if register == -1: return 0 - offset += func.frsize - member = ida_struct.get_member(frame, offset) - - if member: - # Member already exists, rename it - if ida_struct.set_member_name(frame, offset, name): - return 1 - else: - return 0 - else: - # No member at the offset, create a new one - if ida_struct.add_struc_member( - frame, - name, - offset, - ida_bytes.byte_flag(), - None, 1) == 0: - return 1 - else: - return 0 + offset = int(m.group(2), 0) + return 1 if ida_frame.define_stkvar(func, name, offset, ida_bytes.byte_flag(), None, 1) else 0 else: # Location as simple register name return ida_frame.add_regvar(func, start, end, location, name, None)