X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_requestdatashare_object.c;h=b1491c1313e945d2585d5395fd8a5fff27a9594a;hp=8eacef859dda72404903fc3f0af48f60e92f0f1f;hb=7d35618105146cc620cce13454a5ef242bf52a12;hpb=7d4b57a8e13bbc04b66651eeae7e6d68406fe8ea diff --git a/http_requestdatashare_object.c b/http_requestdatashare_object.c index 8eacef8..b1491c1 100644 --- a/http_requestdatashare_object.c +++ b/http_requestdatashare_object.c @@ -125,9 +125,14 @@ zend_object_value _http_requestdatashare_object_new_ex(zend_class_entry *ce, htt *ptr = o; } +#ifdef ZEND_ENGINE_2_4 + zend_object_std_init(OBJ_PROP(o), ce TSRMLS_CC); + object_properties_init(OBJ_PROP(o), ce); +#else ALLOC_HASHTABLE(OBJ_PROP(o)); zend_hash_init(OBJ_PROP(o), zend_hash_num_elements(&ce->default_properties), NULL, ZVAL_PTR_DTOR, 0); zend_hash_copy(OBJ_PROP(o), &ce->default_properties, (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *)); +#endif ov.handle = putObject(http_requestdatashare_object, o); ov.handlers = &http_requestdatashare_object_handlers; @@ -147,7 +152,13 @@ void _http_requestdatashare_object_free(zend_object *object TSRMLS_DC) static zval *_http_requestdatashare_object_read_prop(zval *object, zval *member, int type ZEND_LITERAL_KEY_DC TSRMLS_DC) { - if (type == BP_VAR_W && zend_hash_exists(&THIS_CE->default_properties, Z_STRVAL_P(member), Z_STRLEN_P(member)+1)) { + if (type == BP_VAR_W && +#ifdef ZEND_ENGINE_2_4 + zend_hash_exists(&THIS_CE->properties_info, Z_STRVAL_P(member), Z_STRLEN_P(member)+1) +#else + zend_hash_exists(&THIS_CE->default_properties, Z_STRVAL_P(member), Z_STRLEN_P(member)+1) +#endif + ) { zend_error(E_ERROR, "Cannot access HttpRequestDataShare default properties by reference or array key/index"); return NULL; } @@ -157,7 +168,13 @@ static zval *_http_requestdatashare_object_read_prop(zval *object, zval *member, static void _http_requestdatashare_object_write_prop(zval *object, zval *member, zval *value ZEND_LITERAL_KEY_DC TSRMLS_DC) { - if (zend_hash_exists(&THIS_CE->default_properties, Z_STRVAL_P(member), Z_STRLEN_P(member)+1)) { + if ( +#ifdef ZEND_ENGINE_2_4 + zend_hash_exists(&THIS_CE->properties_info, Z_STRVAL_P(member), Z_STRLEN_P(member)+1) +#else + zend_hash_exists(&THIS_CE->default_properties, Z_STRVAL_P(member), Z_STRLEN_P(member)+1) +#endif + ) { int status; getObjectEx(http_requestdatashare_object, obj, object);