summaryrefslogtreecommitdiff
path: root/python/function.py
diff options
context:
space:
mode:
authorJordan Wiens <jordan@psifertex.com>2020-03-11 19:38:45 -0400
committerJordan Wiens <jordan@psifertex.com>2020-03-11 19:38:45 -0400
commit53c08c119e1269822b0ace389e26b1172c419871 (patch)
treeb2fe20790e703fab19b1ed4c07472c928af8c932 /python/function.py
parentbf343d1fca2e9cd577489b36eac375715be1f07a (diff)
documentation for the Type class, setter for function_type can take a string, and __str__ for functions with the full prototype: Fixes #1549
Diffstat (limited to 'python/function.py')
-rw-r--r--python/function.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/python/function.py b/python/function.py
index 9eac5728..029b70f3 100644
--- a/python/function.py
+++ b/python/function.py
@@ -793,6 +793,12 @@ class Function(object):
except AttributeError:
raise AttributeError("attribute '%s' is read only" % name)
+ def __str__(self):
+ result = ""
+ for token in self.type_tokens:
+ result += token.text
+ return result
+
def __repr__(self):
arch = self.arch
if arch:
@@ -1220,11 +1226,14 @@ class Function(object):
@property
def function_type(self):
- """Function type object"""
+ """Function type object, can be set with either a string representing the function prototype (`str(function)` shows examples) or a :py:class:`Type` object"""
return types.Type(core.BNGetFunctionType(self.handle), platform = self.platform)
@function_type.setter
def function_type(self, value):
+ if isinstance(value, str):
+ (value, new_name) = self.view.parse_type_string(value)
+ self.name = str(new_name)
self.set_user_type(value)
@property