about summary refs log tree commit diff stats
path: root/miasm2/core/objc.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2017-08-03 20:12:51 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2017-08-07 16:42:35 +0200
commit4d86620428f0d12f8796c569bf026ae14ce1e72e (patch)
tree23f25c0842697ec31eba89e1ab1c459bf7e410c7 /miasm2/core/objc.py
parent1375bab064edd7b09ed2038cd10b8445a84030c8 (diff)
downloadmiasm-4d86620428f0d12f8796c569bf026ae14ce1e72e.tar.gz
miasm-4d86620428f0d12f8796c569bf026ae14ce1e72e.zip
Objc: store function arguments'names
Diffstat (limited to '')
-rw-r--r--miasm2/core/objc.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/miasm2/core/objc.py b/miasm2/core/objc.py
index 89140ec9..3fe0e9fe 100644
--- a/miasm2/core/objc.py
+++ b/miasm2/core/objc.py
@@ -45,8 +45,8 @@ def objc_to_str(objc, result=None):
             break
         elif isinstance(objc, ObjCFunc):
             args_str = []
-            for arg in objc.args:
-                args_str.append(objc_to_str(arg))
+            for name, arg in objc.args:
+                args_str.append(objc_to_str(arg, name))
             args = ", ".join(args_str)
             result += "(%s)" % args
             objc = objc.type_ret
@@ -313,8 +313,8 @@ class ObjCFunc(ObjC):
         out.append("Function (%s)  %s: (align: %d)" % (self.abi, self.name, self.align))
         out.append("  ret: %s" % (str(self.type_ret)))
         out.append("  Args:")
-        for arg in self.args:
-            out.append("  %s" % arg)
+        for name, arg in self.args:
+            out.append("  %s %s" % (name, arg))
         return '\n'.join(out)
 
     def __cmp__(self, other):
@@ -1328,10 +1328,10 @@ class CTypesManager(object):
                 type_id.type_ret, resolved, to_fix, lvl + 1)
             resolved[type_id.type_ret] = type_ret
             args = []
-            for arg in type_id.args:
+            for name, arg in type_id.args:
                 objc = self._get_objc(arg, resolved, to_fix, lvl + 1)
                 resolved[arg] = objc
-                args.append(objc)
+                args.append((name, objc))
             out = ObjCFunc(type_id.name, type_id.abi, type_ret, args,
                            self.void_ptr.align, self.void_ptr.size)
         elif isinstance(type_id, CTypeEllipsis):
@@ -1380,7 +1380,7 @@ class CTypesManager(object):
             return True
         elif isinstance(objc, ObjCFunc):
             assert self.check_objc(objc.type_ret, done)
-            for arg in objc.args:
+            for name, arg in objc.args:
                 assert self.check_objc(arg, done)
             return True
         else: