File tree Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -382,15 +382,17 @@ impl Object {
382
382
/// of type `T`.
383
383
pub unsafe fn get_mut_ivar < T > ( & mut self , name : & str ) -> & mut T
384
384
where T : Encode {
385
- let cls = self . class ( ) ;
386
- let ptr = match cls. instance_variable ( name) {
385
+ let offset = match self . class ( ) . instance_variable ( name) {
387
386
Some ( ivar) => {
388
387
assert ! ( ivar. type_encoding( ) == T :: encode( ) ) ;
389
388
let offset = ivar. offset ( ) ;
390
- let self_ptr: * mut Object = self ;
391
- ( self_ptr as * mut u8 ) . offset ( offset) as * mut T
389
+ offset
392
390
}
393
- None => panic ! ( "Ivar {} not found on class {}" , name, cls. name( ) ) ,
391
+ None => panic ! ( "Ivar {} not found on class {}" , name, self . class( ) . name( ) ) ,
392
+ } ;
393
+ let ptr = {
394
+ let self_ptr: * mut Object = self ;
395
+ ( self_ptr as * mut u8 ) . offset ( offset) as * mut T
394
396
} ;
395
397
& mut * ptr
396
398
}
You can’t perform that action at this time.
0 commit comments