From 64931b62cc6bed6c7397dcca826df3395258d07f Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 15 Nov 2005 13:35:23 +0000 Subject: Allow recursive calls to __get/__set for different properties --- Zend/zend_objects.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'Zend/zend_objects.c') diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index 9b5b854220..3b98ef8698 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -88,6 +88,10 @@ ZEND_API void zend_objects_destroy_object(zend_object *object, zend_object_handl ZEND_API void zend_objects_free_object_storage(zend_object *object TSRMLS_DC) { + if (object->guards) { + zend_hash_destroy(object->guards); + FREE_HASHTABLE(object->guards); + } zend_hash_destroy(object->properties); FREE_HASHTABLE(object->properties); efree(object); @@ -101,10 +105,7 @@ ZEND_API zend_object_value zend_objects_new(zend_object **object, zend_class_ent (*object)->ce = class_type; retval.handle = zend_objects_store_put(*object, (zend_objects_store_dtor_t) zend_objects_destroy_object, (zend_objects_free_object_storage_t) zend_objects_free_object_storage, NULL TSRMLS_CC); retval.handlers = &std_object_handlers; - (*object)->in_get = 0; - (*object)->in_set = 0; - (*object)->in_unset = 0; - (*object)->in_isset = 0; + (*object)->guards = NULL; return retval; } -- cgit v1.2.1