@@ -7,7 +7,7 @@ use crate::{
77 sys:: * ,
88 values:: Val ,
99} ;
10- use std:: { marker:: PhantomData , mem :: zeroed , ptr:: null_mut} ;
10+ use std:: { marker:: PhantomData , ptr:: null_mut} ;
1111
1212/// Wrapper of [crate::sys::zend_object].
1313#[ repr( transparent) ]
@@ -60,7 +60,7 @@ impl<T> Object<T> {
6060 }
6161 #[ cfg( phper_major_version = "7" ) ]
6262 {
63- let mut zv = zeroed :: < zval > ( ) ;
63+ let mut zv = std :: mem :: zeroed :: < zval > ( ) ;
6464 phper_zval_obj ( & mut zv, self . as_ptr ( ) as * mut _ ) ;
6565 zend_read_property (
6666 self . inner . ce ,
@@ -92,7 +92,7 @@ impl<T> Object<T> {
9292 }
9393 #[ cfg( phper_major_version = "7" ) ]
9494 {
95- let mut zv = zeroed :: < zval > ( ) ;
95+ let mut zv = std :: mem :: zeroed :: < zval > ( ) ;
9696 phper_zval_obj ( & mut zv, self . as_mut_ptr ( ) ) ;
9797 zend_update_property (
9898 self . inner . ce ,
@@ -107,7 +107,19 @@ impl<T> Object<T> {
107107
108108 pub fn clone_obj ( & self ) -> EBox < Self > {
109109 unsafe {
110- let new_obj = zend_objects_clone_obj ( self . as_ptr ( ) as * mut _ ) . cast ( ) ;
110+ let new_obj = {
111+ #[ cfg( phper_major_version = "8" ) ]
112+ {
113+ zend_objects_clone_obj ( self . as_ptr ( ) as * mut _ ) . cast ( )
114+ }
115+ #[ cfg( phper_major_version = "7" ) ]
116+ {
117+ let mut zv = std:: mem:: zeroed :: < zval > ( ) ;
118+ phper_zval_obj ( & mut zv, self . as_ptr ( ) as * mut _ ) ;
119+ zend_objects_clone_obj ( & mut zv) . cast ( )
120+ }
121+ } ;
122+
111123 EBox :: from_raw ( new_obj)
112124 }
113125 }
0 commit comments