I wrote: > In case of zend_update_static_property(), because one would need > to replicate the body of that function at each writing access?
Please note that the code I'm currently using has changed from the original patch: int zend_update_static_property(zend_class_entry *scope, char *name, size_t name_len, zval *value TSRMLS_DC) { int retval; zval **property = NULL; zend_class_entry *old_scope = EG(scope); EG(scope) = scope; if (!(property = zend_std_get_static_property(scope, name, name_len, 0 TSRMLS_CC))) { retval = FAILURE; } else if (*property == value) { retval = SUCCESS; } else { value->refcount++; if (PZVAL_IS_REF(*property)) { zval_dtor(*property); (*property)->type = value->type; (*property)->value = value->value; if (value->refcount) { zval_copy_ctor(*property); } } else { REPLACE_ZVAL_VALUE(property, value, 1); } retval = SUCCESS; } zval_ptr_dtor(&value); EG(scope) = old_scope; return retval; } Regards, -- Michael - < mike(@)php.net > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php