diff options
| author | Jordan Wiens <jordan@psifertex.com> | 2020-03-11 19:38:45 -0400 |
|---|---|---|
| committer | Jordan Wiens <jordan@psifertex.com> | 2020-03-11 19:38:45 -0400 |
| commit | 53c08c119e1269822b0ace389e26b1172c419871 (patch) | |
| tree | b2fe20790e703fab19b1ed4c07472c928af8c932 /python/function.py | |
| parent | bf343d1fca2e9cd577489b36eac375715be1f07a (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.py | 11 |
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 |
