@@ -399,19 +399,20 @@ def get_type_by_name(self, parser_name: str, name: str) -> Optional[_types.Type]
399399 return None
400400
401401 def get_data_variable_by_name (self , parser_name : str , name : str ) -> Optional [Tuple [int , _types .Type ]]:
402- result = core .BNGetDebugDataVariableByName (self .handle , parser_name , name )
403- if result is not None :
404- core .BNFreeString (result .name )
405- return (result .address , _types .Type .create (result .type ))
406- return None
402+ name_and_var = core .BNDataVariableAndName ()
403+ if not core .BNGetDebugDataVariableByName (self .handle , parser_name , name , name_and_var ):
404+ return None
405+ result = (name_and_var .address , _types .Type .create (core .BNNewTypeReference (name_and_var .type )))
406+ core .BNFreeDataVariableAndName (name_and_var )
407+ return result
407408
408409 def get_data_variable_by_address (self , parser_name : str , address : int ) -> Optional [Tuple [str , _types .Type ]]:
409- name_and_var = core .BNGetDebugDataVariableByAddress ( self . handle , parser_name , address )
410- if name_and_var is not None :
411- result = ( str ( name_and_var . name ), _types . Type . create ( name_and_var . type ))
412- core .BNFreeString (name_and_var .name )
413- return result
414- return None
410+ name_and_var = core .BNDataVariableAndName ( )
411+ if not core . BNGetDebugDataVariableByAddress ( self . handle , parser_name , address , name_and_var ) :
412+ return None
413+ result = ( str ( name_and_var . name ), _types . Type . create ( core .BNNewTypeReference (name_and_var .type )) )
414+ core . BNFreeDataVariableAndName ( name_and_var )
415+ return result
415416
416417 def get_types_by_name (self , name : str ) -> List [Tuple [str , _types .Type ]]:
417418 """ The first element in the Tuple returned in the list is the name of the debug info parser the type came from """
0 commit comments