From 927390bc14ccd6739a62c2a291e50a4a3ce4d0b0 Mon Sep 17 00:00:00 2001 From: Xusheng Date: Thu, 21 Oct 2021 18:27:06 +0800 Subject: Smartly update the TypeView --- python/binaryview.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'python/binaryview.py') diff --git a/python/binaryview.py b/python/binaryview.py index 65a005b7..3ef879ef 100644 --- a/python/binaryview.py +++ b/python/binaryview.py @@ -181,6 +181,8 @@ class BinaryDataNotification: def type_ref_changed(self, view:'BinaryView', name:'_types.QualifiedName', type:'_types.Type') -> None: pass + def type_field_ref_changed(self, view:'BinaryView', name:'_types.QualifiedName', offset: int) -> None: + pass class StringReference: _decodings = { @@ -417,6 +419,7 @@ class BinaryDataNotificationCallbacks: 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) + self._cb.typeFieldReferenceChanged = self._cb.typeFieldReferenceChanged.__class__(self._type_field_ref_changed) def _register(self) -> None: core.BNRegisterDataNotification(self._view.handle, self._cb) @@ -618,6 +621,13 @@ class BinaryDataNotificationCallbacks: except: log_error(traceback.format_exc()) + def _type_field_ref_changed(self, ctxt, view:core.BNBinaryView, name:str, offset:int) -> None: + try: + qualified_name = _types.QualifiedName._from_core_struct(name[0]) + self._notify.type_field_ref_changed(self._view, qualified_name, offset) + except: + log_error(traceback.format_exc()) + @property def view(self) -> 'BinaryView': return self._view -- cgit v1.3.1