summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXusheng <xusheng@vector35.com>2020-09-06 10:25:27 +0800
committerXusheng <xusheng@vector35.com>2020-09-06 10:28:24 +0800
commit8107ec4778fc4bcb657974438a7c12131d62644a (patch)
treefad04136ec6a15c1fe4d1b3cd4f584d28e97b142
parent01ca18b5aa4377a353df040f14f6c2a1490cb0cf (diff)
fix parse_types_from_string()
-rw-r--r--binaryninjacore.h2
-rw-r--r--binaryview.cpp2
-rw-r--r--python/binaryview.py4
3 files changed, 5 insertions, 3 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 773f70c0..9a93f367 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -3270,7 +3270,7 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI bool BNParseTypeString(BNBinaryView* view, const char* text,
BNQualifiedNameAndType* result, char** errors, BNQualifiedNameList* typesAllowRedefinition);
BINARYNINJACOREAPI bool BNParseTypesString(BNBinaryView* view, const char* text, BNTypeParserResult* result,
- char** errors, BNQualifiedNameList typesAllowRedefinition);
+ char** errors, BNQualifiedNameList* typesAllowRedefinition);
BINARYNINJACOREAPI void BNFreeQualifiedNameAndType(BNQualifiedNameAndType* obj);
BINARYNINJACOREAPI void BNFreeQualifiedNameAndTypeArray(BNQualifiedNameAndType* obj, size_t count);
diff --git a/binaryview.cpp b/binaryview.cpp
index 9374c9b8..8d78c4b3 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -2500,7 +2500,7 @@ bool BinaryView::ParseTypeString(const string& source, map<QualifiedName, Ref<Ty
i ++;
}
- bool ok = BNParseTypesString(m_object, source.c_str(), &result, &errorStr, typesList);
+ bool ok = BNParseTypesString(m_object, source.c_str(), &result, &errorStr, &typesList);
if (errorStr)
{
errors = errorStr;
diff --git a/python/binaryview.py b/python/binaryview.py
index 2c20a694..1cd57bf9 100644
--- a/python/binaryview.py
+++ b/python/binaryview.py
@@ -4655,7 +4655,9 @@ class BinaryView(object):
parse = core.BNTypeParserResult()
errors = ctypes.c_char_p()
- if not core.BNParseTypesString(self.handle, text, parse, errors):
+ type_list = core.BNQualifiedNameList()
+ type_list.count = 0
+ if not core.BNParseTypesString(self.handle, text, parse, errors, type_list):
error_str = errors.value.decode("utf-8")
core.BNFreeString(ctypes.cast(errors, ctypes.POINTER(ctypes.c_byte)))
raise SyntaxError(error_str)