@@ -85,7 +85,7 @@ def __init__(self, arch: Optional['architecture.Architecture'] = None, handle=No
8585 self ._cb .getGlobalRegisters = self ._cb .getGlobalRegisters .__class__ (self ._get_global_regs )
8686 self ._cb .freeRegisterList = self ._cb .freeRegisterList .__class__ (self ._free_register_list )
8787 self ._cb .getGlobalRegisterType = self ._cb .getGlobalRegisterType .__class__ (self ._get_global_reg_type )
88- self ._cb .getAddressSize = self ._cb .getAddressSize .__class__ (lambda ctxt : self ._get_address_size )
88+ self ._cb .getAddressSize = self ._cb .getAddressSize .__class__ (self ._get_address_size )
8989 self ._cb .adjustTypeParserInput = self ._cb .adjustTypeParserInput .__class__ (self ._adjust_type_parser_input )
9090 self ._cb .freeTypeParserInput = self ._cb .freeTypeParserInput .__class__ (self ._free_type_parser_input )
9191 self ._pending_reg_lists = {}
@@ -122,6 +122,7 @@ def __init__(self, arch: Optional['architecture.Architecture'] = None, handle=No
122122 self .handle : ctypes .POINTER (core .BNPlatform ) = _handle
123123 self ._arch = _arch
124124 self ._name = None
125+ self ._address_size = core .BNGetPlatformAddressSize (_handle )
125126
126127 def _init (self , ctxt ):
127128 pass
@@ -171,10 +172,9 @@ def _get_global_reg_type(self, ctxt, reg):
171172
172173 def _get_address_size (self , ctxt ):
173174 try :
174- return core . BNGetPlatformAddressSize ( self .handle )
175+ return self .address_size
175176 except :
176- log_error (traceback .format_exc ())
177- return None
177+ return self .arch .address_size
178178
179179 def _adjust_type_parser_input (
180180 self ,
@@ -308,6 +308,10 @@ def name(self) -> str:
308308 self ._name = core .BNGetPlatformName (self .handle )
309309 return self ._name
310310
311+ @property
312+ def address_size (self ) -> int :
313+ return self ._address_size
314+
311315 @classmethod
312316 @property
313317 def os_list (cls ) -> List [str ]:
0 commit comments