MAKE_STD_ZVAL(unset);
ZVAL_NULL(unset);
zend_symtable_update(Z_ARRVAL_P(obj->proxy->object), Z_STRVAL_P(obj->proxy->member), Z_STRLEN_P(obj->proxy->member)+1, (void *) &unset, sizeof(zval *), (void *) &data);
+ Z_ADDREF_PP(data);
}
return *data;
#if PHP_HTTP_PPDBG
fprintf(stderr, "proxy_set: %s\n", Z_STRVAL_P(obj->proxy->member));
#endif
+ Z_ADDREF_P(value);
if (Z_TYPE_P(target) == IS_OBJECT) {
zend_update_property(Z_OBJCE_P(target), target, Z_STRVAL_P(obj->proxy->member), Z_STRLEN_P(obj->proxy->member), value TSRMLS_CC);
} else {
- Z_ADDREF_P(value);
zend_symtable_update(Z_ARRVAL_P(target), Z_STRVAL_P(obj->proxy->member), Z_STRLEN_P(obj->proxy->member)+1, (void *) &value, sizeof(zval *), NULL);
}
/* propagate */
PHP_MINIT_FUNCTION(http_property_proxy)
{
- PHP_HTTP_REGISTER_CLASS(http\\Object, PropertyProxy, http_property_proxy, NULL, ZEND_ACC_FINAL);
+ PHP_HTTP_REGISTER_CLASS(http\\Object, PropertyProxy, http_property_proxy, NULL, ZEND_ACC_FINAL_CLASS);
php_http_property_proxy_class_entry->create_object = php_http_property_proxy_object_new;
memcpy(&php_http_property_proxy_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
php_http_property_proxy_object_handlers.set = php_http_property_proxy_object_set;