@@ -15,8 +15,6 @@ class QlRegisterManager:
1515 arch directories and are mapped to Unicorn Engine's definitions
1616 """
1717
18- __priv_members = ('register_mapping' , 'ql' , 'uc_pc' , 'uc_sp' )
19-
2018 def __init__ (self , ql : Qiling ):
2119 self .register_mapping : MutableMapping [str , int ] = {}
2220 self .reverse_mapping : Mapping [int , str ] = {}
@@ -27,7 +25,8 @@ def __init__(self, ql: Qiling):
2725 def __getattr__ (self , name : str ) -> Any :
2826 name = name .lower ()
2927
30- if name in QlRegisterManager .__priv_members :
28+ # this is checked first to prevent endless recursion upon init
29+ if name == 'register_mapping' :
3130 return super ().__getattribute__ (name )
3231
3332 elif name in self .register_mapping :
@@ -39,7 +38,8 @@ def __getattr__(self, name: str) -> Any:
3938 def __setattr__ (self , name : str , value : Any ):
4039 name = name .lower ()
4140
42- if name in QlRegisterManager .__priv_members :
41+ # this is checked first to prevent endless recursion upon init
42+ if name == 'register_mapping' :
4343 super ().__setattr__ (name , value )
4444
4545 elif name in self .register_mapping :
0 commit comments