cvs: pear /PECL/mono php_mono.c

From: Date: Sat, 08 Feb 2003 17:44:00 +0000
Subject: cvs: pear /PECL/mono php_mono.c
Groups: php.pear.cvs 
Request: Send a blank email to pear-cvs+get-8764@lists.php.net to get a copy of this message
sterling Sat Feb 8 12:44:00 2003 EDT Modified files: /pear/PECL/mono php_mono.c Log: add support for object cloning and destruction Index: pear/PECL/mono/php_mono.c diff -u pear/PECL/mono/php_mono.c:1.3 pear/PECL/mono/php_mono.c:1.4 --- pear/PECL/mono/php_mono.c:1.3 Fri Feb 7 17:49:27 2003 +++ pear/PECL/mono/php_mono.c Sat Feb 8 12:44:00 2003 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_mono.c,v 1.3 2003/02/07 22:49:27 sterling Exp $ */ +/* $Id: php_mono.c,v 1.4 2003/02/08 17:44:00 sterling Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -718,11 +718,32 @@ static void object_clone(void *object, void **object_clone TSRMLS_DC) { + php_mono_object *pm = (php_mono_object *) object; + php_mono_object **pm_clone = (php_mono_object **) object_clone; + + *pm_clone = emalloc(sizeof(php_mono_object)); + (*pm_clone)->zo.ce = pm->zo.ce; + (*pm_clone)->zo.in_get = (*pm_clone)->zo.in_set = 0; + + ALLOC_HASHTABLE((*pm_clone)->zo.properties); + zend_hash_init((*pm_clone)->zo.properties, 0, NULL, ZVAL_PTR_DTOR, 0); + zend_hash_copy((*pm_clone)->zo.properties, pm->zo.properties, (copy_ctor_func_t) zval_add_ref, + (void *) NULL, sizeof(zval *)); + + (*pm_clone)->mimage = pm->mimage; + (*pm_clone)->mclass = pm->mclass; + (*pm_clone)->mobject = mono_object_clone(pm->mobject); } static void object_dtor(void *object, zend_object_handle handle TSRMLS_DC) { + php_mono_object *pm; + + pm = (php_mono_object *) object; + + mono_object_free(pm->mobject); + zend_objects_destroy_object(object, handle TSRMLS_CC); } static zend_object_value

« previous php.pear.cvs (#8764) next »