@@ -13,7 +13,6 @@ use crate::disassembly::DisassemblySettings;
1313use crate :: flowgraph:: FlowGraph ;
1414use crate :: function:: { Function , Location } ;
1515use crate :: rc:: { Array , CoreArrayProvider , CoreArrayProviderInner , Ref , RefCountable } ;
16- use crate :: string:: IntoCStr ;
1716use crate :: types:: Type ;
1817use crate :: variable:: { PossibleValueSet , RegisterValue , SSAVariable , UserVariableValue , Variable } ;
1918
@@ -117,57 +116,42 @@ impl MediumLevelILFunction {
117116 unsafe { Array :: new ( blocks, count, context) }
118117 }
119118
119+ #[ deprecated = "Use `Function::create_user_stack_var` instead" ]
120120 pub fn create_user_stack_var < ' a , C : Into < Conf < & ' a Type > > > (
121121 & self ,
122122 offset : i64 ,
123123 var_type : C ,
124124 name : & str ,
125125 ) {
126- let mut owned_raw_var_ty = Conf :: < & Type > :: into_raw ( var_type. into ( ) ) ;
127- let name = name. to_cstr ( ) ;
128- unsafe {
129- BNCreateUserStackVariable (
130- self . function ( ) . handle ,
131- offset,
132- & mut owned_raw_var_ty,
133- name. as_ptr ( ) ,
134- )
135- }
126+ self . function ( )
127+ . create_user_stack_var ( offset, var_type, name)
136128 }
137129
130+ #[ deprecated = "Use `Function::delete_user_stack_var` instead" ]
138131 pub fn delete_user_stack_var ( & self , offset : i64 ) {
139- unsafe { BNDeleteUserStackVariable ( self . function ( ) . handle , offset) }
132+ self . function ( ) . delete_user_stack_var ( offset)
140133 }
141134
135+ #[ deprecated = "Use `Function::create_user_var` instead" ]
142136 pub fn create_user_var < ' a , C : Into < Conf < & ' a Type > > > (
143137 & self ,
144138 var : & Variable ,
145139 var_type : C ,
146140 name : & str ,
147141 ignore_disjoint_uses : bool ,
148142 ) {
149- let raw_var = BNVariable :: from ( var) ;
150- let mut owned_raw_var_ty = Conf :: < & Type > :: into_raw ( var_type. into ( ) ) ;
151- let name = name. to_cstr ( ) ;
152- unsafe {
153- BNCreateUserVariable (
154- self . function ( ) . handle ,
155- & raw_var,
156- & mut owned_raw_var_ty,
157- name. as_ref ( ) . as_ptr ( ) as * const _ ,
158- ignore_disjoint_uses,
159- )
160- }
143+ self . function ( )
144+ . create_user_var ( var, var_type, name, ignore_disjoint_uses)
161145 }
162146
147+ #[ deprecated = "Use `Function::delete_user_var` instead" ]
163148 pub fn delete_user_var ( & self , var : & Variable ) {
164- let raw_var = BNVariable :: from ( var) ;
165- unsafe { BNDeleteUserVariable ( self . function ( ) . handle , & raw_var) }
149+ self . function ( ) . delete_user_var ( var)
166150 }
167151
152+ #[ deprecated = "Use `Function::is_var_user_defined` instead" ]
168153 pub fn is_var_user_defined ( & self , var : & Variable ) -> bool {
169- let raw_var = BNVariable :: from ( var) ;
170- unsafe { BNIsVariableUserDefined ( self . function ( ) . handle , & raw_var) }
154+ self . function ( ) . is_var_user_defined ( var)
171155 }
172156
173157 /// Allows the user to specify a PossibleValueSet value for an MLIL
@@ -261,47 +245,32 @@ impl MediumLevelILFunction {
261245 Ok ( ( ) )
262246 }
263247
248+ #[ deprecated = "Use `Function::create_auto_stack_var` instead" ]
264249 pub fn create_auto_stack_var < ' a , T : Into < Conf < & ' a Type > > > (
265250 & self ,
266251 offset : i64 ,
267252 var_type : T ,
268253 name : & str ,
269254 ) {
270- let mut owned_raw_var_ty = Conf :: < & Type > :: into_raw ( var_type. into ( ) ) ;
271- let name = name. to_cstr ( ) ;
272- unsafe {
273- BNCreateAutoStackVariable (
274- self . function ( ) . handle ,
275- offset,
276- & mut owned_raw_var_ty,
277- name. as_ptr ( ) ,
278- )
279- }
255+ self . function ( )
256+ . create_auto_stack_var ( offset, var_type, name)
280257 }
281258
259+ #[ deprecated = "Use `Function::delete_auto_stack_var` instead" ]
282260 pub fn delete_auto_stack_var ( & self , offset : i64 ) {
283- unsafe { BNDeleteAutoStackVariable ( self . function ( ) . handle , offset) }
261+ self . function ( ) . delete_auto_stack_var ( offset)
284262 }
285263
264+ #[ deprecated = "Use `Function::create_auto_var` instead" ]
286265 pub fn create_auto_var < ' a , C : Into < Conf < & ' a Type > > > (
287266 & self ,
288267 var : & Variable ,
289268 var_type : C ,
290269 name : & str ,
291270 ignore_disjoint_uses : bool ,
292271 ) {
293- let raw_var = BNVariable :: from ( var) ;
294- let mut owned_raw_var_ty = Conf :: < & Type > :: into_raw ( var_type. into ( ) ) ;
295- let name = name. to_cstr ( ) ;
296- unsafe {
297- BNCreateAutoVariable (
298- self . function ( ) . handle ,
299- & raw_var,
300- & mut owned_raw_var_ty,
301- name. as_ptr ( ) ,
302- ignore_disjoint_uses,
303- )
304- }
272+ self . function ( )
273+ . create_auto_var ( var, var_type, name, ignore_disjoint_uses)
305274 }
306275
307276 /// Returns a list of ILReferenceSource objects (IL xrefs or cross-references)
0 commit comments