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;
16
16
use std:: {
17
17
fmt:: { self , Debug } ,
18
18
marker:: PhantomData ,
19
- mem:: ManuallyDrop ,
19
+ mem:: { ManuallyDrop , MaybeUninit } ,
20
20
ops:: Deref ,
21
21
ptr:: null_mut,
22
22
} ;
@@ -335,8 +335,10 @@ impl ZArr {
335
335
336
336
impl Drop for ZArr {
337
337
fn drop ( & mut self ) {
338
+ let mut val = MaybeUninit :: < zval > :: uninit ( ) ;
338
339
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 ( ) ) ;
340
342
}
341
343
}
342
344
}
Original file line number Diff line number Diff line change 9
9
// See the Mulan PSL v2 for more details.
10
10
11
11
use phper:: {
12
+ alloc:: ToRefOwned ,
12
13
arrays:: { InsertKey , IterKey , ZArray } ,
13
14
modules:: Module ,
14
15
objects:: { ZObj , ZObject } ,
@@ -30,6 +31,16 @@ pub fn integrate(module: &mut Module) {
30
31
let bar = a2. get ( "bar" ) . unwrap ( ) ;
31
32
let bar = bar. as_z_str ( ) . unwrap ( ) . to_str ( ) . unwrap ( ) ;
32
33
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
+
33
44
Ok ( format ! ( "{} {}" , val, bar) )
34
45
} ,
35
46
) ;
You can’t perform that action at this time.
0 commit comments