change zend_read_property() to allocate property zval too
authorAntony Dovgal <tony2001@php.net>
Wed, 23 Nov 2005 18:51:44 +0000 (18:51 +0000)
committerAntony Dovgal <tony2001@php.net>
Wed, 23 Nov 2005 18:51:44 +0000 (18:51 +0000)
Zend/zend_API.c

index 52d2fd7430feec4d88413e18c94cf0f62bb6d2ac..d531371ded87479b240753b836d9af1e8c2c55d2 100644 (file)
@@ -2612,7 +2612,7 @@ ZEND_API int zend_update_static_property_stringl(zend_class_entry *scope, char *
 
 ZEND_API zval *zend_read_property(zend_class_entry *scope, zval *object, char *name, int name_length, zend_bool silent TSRMLS_DC)
 {
-       zval property, *value;
+       zval *property, *value;
        zend_class_entry *old_scope = EG(scope);
        
        EG(scope) = scope;
@@ -2624,9 +2624,10 @@ ZEND_API zval *zend_read_property(zend_class_entry *scope, zval *object, char *n
                zend_get_object_classname(object, &class_name, &class_name_len TSRMLS_CC);
                zend_error(E_CORE_ERROR, "Property %s of class %s cannot be read", name, class_name);
        }
-       ZVAL_STRINGL(&property, name, name_length, 0);
-       value = Z_OBJ_HT_P(object)->read_property(object, &property, silent TSRMLS_CC);
-
+       MAKE_STD_ZVAL(property);
+       ZVAL_STRINGL(property, name, name_length, 1);
+       value = Z_OBJ_HT_P(object)->read_property(object, property, silent TSRMLS_CC);
+       zval_ptr_dtor(&property);
        EG(scope) = old_scope;
        return value;
 }