File tree Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -16,7 +16,7 @@ use phper_alloc::ToRefOwned;
1616use std:: {
1717 fmt:: { self , Debug } ,
1818 marker:: PhantomData ,
19- mem:: ManuallyDrop ,
19+ mem:: { ManuallyDrop , MaybeUninit } ,
2020 ops:: Deref ,
2121 ptr:: null_mut,
2222} ;
@@ -335,8 +335,10 @@ impl ZArr {
335335
336336impl Drop for ZArr {
337337 fn drop ( & mut self ) {
338+ let mut val = MaybeUninit :: < zval > :: uninit ( ) ;
338339 unsafe {
339- zend_array_destroy ( self . as_mut_ptr ( ) ) ;
340+ phper_zval_arr ( val. as_mut_ptr ( ) . cast ( ) , self . as_mut_ptr ( ) ) ;
341+ phper_zval_ptr_dtor ( val. as_mut_ptr ( ) ) ;
340342 }
341343 }
342344}
Original file line number Diff line number Diff line change 99// See the Mulan PSL v2 for more details.
1010
1111use phper:: {
12+ alloc:: ToRefOwned ,
1213 arrays:: { InsertKey , IterKey , ZArray } ,
1314 modules:: Module ,
1415 objects:: { ZObj , ZObject } ,
@@ -30,6 +31,16 @@ pub fn integrate(module: &mut Module) {
3031 let bar = a2. get ( "bar" ) . unwrap ( ) ;
3132 let bar = bar. as_z_str ( ) . unwrap ( ) . to_str ( ) . unwrap ( ) ;
3233
34+ {
35+ let mut arr1 = ZArray :: with_capacity ( 4 ) ;
36+ let mut arr2 = arr1. to_ref_owned ( ) ;
37+ arr2. insert ( ( ) , "1" ) ;
38+ arr2. insert ( ( ) , "2" ) ;
39+ arr2. insert ( ( ) , "3" ) ;
40+ arr2. insert ( ( ) , "4" ) ;
41+ arr2. insert ( ( ) , "5" ) ;
42+ }
43+
3344 Ok ( format ! ( "{} {}" , val, bar) )
3445 } ,
3546 ) ;
You can’t perform that action at this time.
0 commit comments