From 93f91f8d2f1fef1866b3ee87042ec62f99a8d087 Mon Sep 17 00:00:00 2001 From: Xusheng Date: Mon, 31 May 2021 15:46:57 +0800 Subject: Add TypeReferenceChanged notification --- python/binaryview.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'python/binaryview.py') diff --git a/python/binaryview.py b/python/binaryview.py index 4b1ebb1f..9dd321c1 100644 --- a/python/binaryview.py +++ b/python/binaryview.py @@ -127,6 +127,9 @@ class BinaryDataNotification(object): def type_undefined(self, view, name, type): pass + def type_ref_changed(self, view, name, type): + pass + _decodings = { StringType.AsciiString: "ascii", StringType.Utf8String: "utf-8", @@ -525,6 +528,7 @@ class BinaryDataNotificationCallbacks(object): self._cb.stringRemoved = self._cb.stringRemoved.__class__(self._string_removed) self._cb.typeDefined = self._cb.typeDefined.__class__(self._type_defined) self._cb.typeUndefined = self._cb.typeUndefined.__class__(self._type_undefined) + self._cb.typeReferenceChanged = self._cb.typeReferenceChanged.__class__(self._type_ref_changed) def _register(self): core.BNRegisterDataNotification(self._view.handle, self._cb) @@ -714,6 +718,13 @@ class BinaryDataNotificationCallbacks(object): except: log.log_error(traceback.format_exc()) + def _type_ref_changed(self, ctxt, view, name, type_obj): + try: + qualified_name = types.QualifiedName._from_core_struct(name[0]) + self._notify.type_ref_changed(self._view, qualified_name, types.Type(core.BNNewTypeReference(type_obj), platform = self._view.platform)) + except: + log.log_error(traceback.format_exc()) + @property def view(self): """ """ -- cgit v1.3.1