Skip to content

Commit 94d0d54

Browse files
committed
1) Fix size number recognize for "Create simple struct"
1 parent d784855 commit 94d0d54

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

HexRaysPyTools/callbacks/create_struct.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,11 @@ def activate(self, ctx):
110110
if vdui.item.is_citem() and vdui.item.it.is_expr():
111111
target_item = vdui.item.e
112112
if target_item.opname == "num":
113-
struct_size = ida_kernwin.str2ea(idaapi.tag_remove(target_item.cexpr.print1(None)))
113+
size_str = idaapi.tag_remove(target_item.cexpr.print1(None))
114+
# if size_str.is_numeric():
115+
# struct_size = int(size_str, 10)
116+
# else:
117+
# struct_size = ida_kernwin.str2ea(idaapi.tag_remove(target_item.cexpr.print1(None)))
114118
class SimpleCreateStructForm(idaapi.Form):
115119
def __init__(self):
116120
idaapi.Form.__init__(self, r"""STARTITEM 0
@@ -127,11 +131,11 @@ def __init__(self):
127131
'gAlign': idaapi.Form.ChkGroupControl(("ckAlign",)),
128132
})
129133

130-
def Go(self, size=0):
134+
def Go(self, size_str = "0"):
131135
self.Compile()
132136
self.ckAlign.checked = True
133137
# f.numFieldSize.value = 4
134-
self.numSize.value = str(size)
138+
self.numSize.value = size_str
135139
ok = self.Execute()
136140
# print "Ok = %d"%ok
137141
if ok == 1:
@@ -149,7 +153,7 @@ def Go(self, size=0):
149153
self.ckAlign.checked)
150154
return None
151155

152-
ret = SimpleCreateStructForm().Go(struc_size)
156+
ret = SimpleCreateStructForm().Go(size_str)
153157
if ret is not None:
154158
self.create_struct_type(*ret)
155159
return 1

0 commit comments

Comments
 (0)