]> granicus.if.org Git - php/commitdiff
Accept zend_object* in zend_update_property
authorNikita Popov <nikita.ppv@gmail.com>
Fri, 7 Aug 2020 13:27:57 +0000 (15:27 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Fri, 7 Aug 2020 14:40:27 +0000 (16:40 +0200)
13 files changed:
Zend/zend_API.c
Zend/zend_API.h
Zend/zend_exceptions.c
ext/com_dotnet/com_wrapper.c
ext/curl/curl_file.c
ext/intl/transliterator/transliterator_class.c
ext/mysqli/mysqli_exception.c
ext/pdo/pdo_dbh.c
ext/pdo/pdo_stmt.c
ext/reflection/php_reflection.c
ext/soap/php_encoding.c
ext/soap/soap.c
sapi/phpdbg/phpdbg_prompt.c

index 7a13d78c6a7064ad3949dd42fa405154b6999bed..b82e4fbc164b6e304a357a86b8d2390414e75ebf 100644 (file)
@@ -3971,19 +3971,19 @@ ZEND_API void zend_declare_class_constant_string(zend_class_entry *ce, const cha
 }
 /* }}} */
 
-ZEND_API void zend_update_property_ex(zend_class_entry *scope, zval *object, zend_string *name, zval *value) /* {{{ */
+ZEND_API void zend_update_property_ex(zend_class_entry *scope, zend_object *object, zend_string *name, zval *value) /* {{{ */
 {
        zend_class_entry *old_scope = EG(fake_scope);
 
        EG(fake_scope) = scope;
 
-       Z_OBJ_HT_P(object)->write_property(Z_OBJ_P(object), name, value, NULL);
+       object->handlers->write_property(object, name, value, NULL);
 
        EG(fake_scope) = old_scope;
 }
 /* }}} */
 
-ZEND_API void zend_update_property(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zval *value) /* {{{ */
+ZEND_API void zend_update_property(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zval *value) /* {{{ */
 {
        zend_string *property;
        zend_class_entry *old_scope = EG(fake_scope);
@@ -3991,14 +3991,14 @@ ZEND_API void zend_update_property(zend_class_entry *scope, zval *object, const
        EG(fake_scope) = scope;
 
        property = zend_string_init(name, name_length, 0);
-       Z_OBJ_HT_P(object)->write_property(Z_OBJ_P(object), property, value, NULL);
+       object->handlers->write_property(object, property, value, NULL);
        zend_string_release_ex(property, 0);
 
        EG(fake_scope) = old_scope;
 }
 /* }}} */
 
-ZEND_API void zend_update_property_null(zend_class_entry *scope, zval *object, const char *name, size_t name_length) /* {{{ */
+ZEND_API void zend_update_property_null(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length) /* {{{ */
 {
        zval tmp;
 
@@ -4022,7 +4022,7 @@ ZEND_API void zend_unset_property(zend_class_entry *scope, zend_object *object,
 }
 /* }}} */
 
-ZEND_API void zend_update_property_bool(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_long value) /* {{{ */
+ZEND_API void zend_update_property_bool(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_long value) /* {{{ */
 {
        zval tmp;
 
@@ -4031,7 +4031,7 @@ ZEND_API void zend_update_property_bool(zend_class_entry *scope, zval *object, c
 }
 /* }}} */
 
-ZEND_API void zend_update_property_long(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_long value) /* {{{ */
+ZEND_API void zend_update_property_long(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_long value) /* {{{ */
 {
        zval tmp;
 
@@ -4040,7 +4040,7 @@ ZEND_API void zend_update_property_long(zend_class_entry *scope, zval *object, c
 }
 /* }}} */
 
-ZEND_API void zend_update_property_double(zend_class_entry *scope, zval *object, const char *name, size_t name_length, double value) /* {{{ */
+ZEND_API void zend_update_property_double(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, double value) /* {{{ */
 {
        zval tmp;
 
@@ -4049,7 +4049,7 @@ ZEND_API void zend_update_property_double(zend_class_entry *scope, zval *object,
 }
 /* }}} */
 
-ZEND_API void zend_update_property_str(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_string *value) /* {{{ */
+ZEND_API void zend_update_property_str(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_string *value) /* {{{ */
 {
        zval tmp;
 
@@ -4058,7 +4058,7 @@ ZEND_API void zend_update_property_str(zend_class_entry *scope, zval *object, co
 }
 /* }}} */
 
-ZEND_API void zend_update_property_string(zend_class_entry *scope, zval *object, const char *name, size_t name_length, const char *value) /* {{{ */
+ZEND_API void zend_update_property_string(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, const char *value) /* {{{ */
 {
        zval tmp;
 
@@ -4068,7 +4068,7 @@ ZEND_API void zend_update_property_string(zend_class_entry *scope, zval *object,
 }
 /* }}} */
 
-ZEND_API void zend_update_property_stringl(zend_class_entry *scope, zval *object, const char *name, size_t name_length, const char *value, size_t value_len) /* {{{ */
+ZEND_API void zend_update_property_stringl(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, const char *value, size_t value_len) /* {{{ */
 {
        zval tmp;
 
index 7707bbc00123d0299d7c8aeec3163d3ca8334fea..b6f5944078e3ccd99a89abc5af8ca9c8a8120bdc 100644 (file)
@@ -380,15 +380,15 @@ ZEND_API void zend_declare_class_constant_string(zend_class_entry *ce, const cha
 
 ZEND_API int zend_update_class_constants(zend_class_entry *class_type);
 
-ZEND_API void zend_update_property_ex(zend_class_entry *scope, zval *object, zend_string *name, zval *value);
-ZEND_API void zend_update_property(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zval *value);
-ZEND_API void zend_update_property_null(zend_class_entry *scope, zval *object, const char *name, size_t name_length);
-ZEND_API void zend_update_property_bool(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_long value);
-ZEND_API void zend_update_property_long(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_long value);
-ZEND_API void zend_update_property_double(zend_class_entry *scope, zval *object, const char *name, size_t name_length, double value);
-ZEND_API void zend_update_property_str(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_string *value);
-ZEND_API void zend_update_property_string(zend_class_entry *scope, zval *object, const char *name, size_t name_length, const char *value);
-ZEND_API void zend_update_property_stringl(zend_class_entry *scope, zval *object, const char *name, size_t name_length, const char *value, size_t value_length);
+ZEND_API void zend_update_property_ex(zend_class_entry *scope, zend_object *object, zend_string *name, zval *value);
+ZEND_API void zend_update_property(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zval *value);
+ZEND_API void zend_update_property_null(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length);
+ZEND_API void zend_update_property_bool(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_long value);
+ZEND_API void zend_update_property_long(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_long value);
+ZEND_API void zend_update_property_double(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, double value);
+ZEND_API void zend_update_property_str(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_string *value);
+ZEND_API void zend_update_property_string(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, const char *value);
+ZEND_API void zend_update_property_stringl(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, const char *value, size_t value_length);
 ZEND_API void zend_unset_property(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length);
 
 ZEND_API int zend_update_static_property_ex(zend_class_entry *scope, zend_string *name, zval *value);
index 27a1388ad95f2d1947455637826e39f4d88befe5..de95b2a8c0965dc274be77fa2dbc7054d252cdec 100644 (file)
@@ -110,7 +110,7 @@ void zend_exception_set_previous(zend_object *exception, zend_object *add_previo
                base_ce = i_get_exception_base(Z_OBJ_P(ex));
                previous = zend_read_property_ex(base_ce, Z_OBJ_P(ex), ZSTR_KNOWN(ZEND_STR_PREVIOUS), 1, &rv);
                if (Z_TYPE_P(previous) == IS_NULL) {
-                       zend_update_property_ex(base_ce, ex, ZSTR_KNOWN(ZEND_STR_PREVIOUS), &pv);
+                       zend_update_property_ex(base_ce, Z_OBJ_P(ex), ZSTR_KNOWN(ZEND_STR_PREVIOUS), &pv);
                        GC_DELREF(add_previous);
                        return;
                }
@@ -215,14 +215,13 @@ ZEND_API void zend_clear_exception(void) /* {{{ */
 
 static zend_object *zend_default_exception_new_ex(zend_class_entry *class_type, int skip_top_traces) /* {{{ */
 {
-       zval obj, tmp;
-       zend_object *object;
+       zval tmp;
        zval trace;
        zend_class_entry *base_ce;
        zend_string *filename;
 
-       Z_OBJ(obj) = object = zend_objects_new(class_type);
-       Z_OBJ_HT(obj) = &default_exception_handlers;
+       zend_object *object = zend_objects_new(class_type);
+       object->handlers = &default_exception_handlers;
 
        object_properties_init(object, class_type);
 
@@ -240,17 +239,17 @@ static zend_object *zend_default_exception_new_ex(zend_class_entry *class_type,
        if (EXPECTED((class_type != zend_ce_parse_error && class_type != zend_ce_compile_error)
                        || !(filename = zend_get_compiled_filename()))) {
                ZVAL_STRING(&tmp, zend_get_executed_filename());
-               zend_update_property_ex(base_ce, &obj, ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
+               zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
                zval_ptr_dtor(&tmp);
                ZVAL_LONG(&tmp, zend_get_executed_lineno());
-               zend_update_property_ex(base_ce, &obj, ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
+               zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
        } else {
                ZVAL_STR(&tmp, filename);
-               zend_update_property_ex(base_ce, &obj, ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
+               zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
                ZVAL_LONG(&tmp, zend_get_compiled_lineno());
-               zend_update_property_ex(base_ce, &obj, ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
+               zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
        }
-       zend_update_property_ex(base_ce, &obj, ZSTR_KNOWN(ZEND_STR_TRACE), &trace);
+       zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_TRACE), &trace);
 
        return object;
 }
@@ -293,16 +292,16 @@ ZEND_METHOD(Exception, __construct)
 
        if (message) {
                ZVAL_STR(&tmp, message);
-               zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
+               zend_update_property_ex(base_ce, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
        }
 
        if (code) {
                ZVAL_LONG(&tmp, code);
-               zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
+               zend_update_property_ex(base_ce, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
        }
 
        if (previous) {
-               zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_PREVIOUS), previous);
+               zend_update_property_ex(base_ce, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_PREVIOUS), previous);
        }
 }
 /* }}} */
@@ -345,31 +344,31 @@ ZEND_METHOD(ErrorException, __construct)
 
        if (message) {
                ZVAL_STR_COPY(&tmp, message);
-               zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
+               zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
                zval_ptr_dtor(&tmp);
        }
 
        if (code) {
                ZVAL_LONG(&tmp, code);
-               zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
+               zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
        }
 
        if (previous) {
-               zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_PREVIOUS), previous);
+               zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_PREVIOUS), previous);
        }
 
        ZVAL_LONG(&tmp, severity);
-       zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_SEVERITY), &tmp);
+       zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_SEVERITY), &tmp);
 
        if (argc >= 4) {
                ZVAL_STR_COPY(&tmp, filename);
-               zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
+               zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
                zval_ptr_dtor(&tmp);
        if (argc < 5) {
            lineno = 0; /* invalidate lineno */
        }
                ZVAL_LONG(&tmp, lineno);
-               zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
+               zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
        }
 }
 /* }}} */
@@ -726,7 +725,7 @@ ZEND_METHOD(Exception, __toString)
        /* We store the result in the private property string so we can access
         * the result in uncaught exception handlers without memleaks. */
        ZVAL_STR(&tmp, str);
-       zend_update_property_ex(base_ce, exception, ZSTR_KNOWN(ZEND_STR_STRING), &tmp);
+       zend_update_property_ex(base_ce, Z_OBJ_P(exception), ZSTR_KNOWN(ZEND_STR_STRING), &tmp);
 
        RETURN_STR(str);
 }
@@ -847,11 +846,11 @@ static zend_object *zend_throw_exception_zstr(zend_class_entry *exception_ce, ze
 
        if (message) {
                ZVAL_STR(&tmp, message);
-               zend_update_property_ex(exception_ce, &ex, ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
+               zend_update_property_ex(exception_ce, Z_OBJ(ex), ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
        }
        if (code) {
                ZVAL_LONG(&tmp, code);
-               zend_update_property_ex(exception_ce, &ex, ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
+               zend_update_property_ex(exception_ce, Z_OBJ(ex), ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
        }
 
        zend_throw_exception_internal(Z_OBJ(ex));
@@ -888,11 +887,10 @@ ZEND_API ZEND_COLD zend_object *zend_throw_exception_ex(zend_class_entry *except
 
 ZEND_API ZEND_COLD zend_object *zend_throw_error_exception(zend_class_entry *exception_ce, zend_string *message, zend_long code, int severity) /* {{{ */
 {
-       zval ex, tmp;
+       zval tmp;
        zend_object *obj = zend_throw_exception_zstr(exception_ce, message, code);
-       ZVAL_OBJ(&ex, obj);
        ZVAL_LONG(&tmp, severity);
-       zend_update_property_ex(zend_ce_error_exception, &ex, ZSTR_KNOWN(ZEND_STR_SEVERITY), &tmp);
+       zend_update_property_ex(zend_ce_error_exception, obj, ZSTR_KNOWN(ZEND_STR_SEVERITY), &tmp);
        return obj;
 }
 /* }}} */
@@ -935,12 +933,12 @@ ZEND_API ZEND_COLD int zend_exception_error(zend_object *ex, int severity) /* {{
                zend_string *str, *file = NULL;
                zend_long line = 0;
 
-               zend_call_known_instance_method_with_0_params(ex->ce->__tostring, Z_OBJ(exception), &tmp);
+               zend_call_known_instance_method_with_0_params(ex->ce->__tostring, ex, &tmp);
                if (!EG(exception)) {
                        if (Z_TYPE(tmp) != IS_STRING) {
                                zend_error(E_WARNING, "%s::__toString() must return a string", ZSTR_VAL(ce_exception->name));
                        } else {
-                               zend_update_property_ex(i_get_exception_base(ex), &exception, ZSTR_KNOWN(ZEND_STR_STRING), &tmp);
+                               zend_update_property_ex(i_get_exception_base(ex), ex, ZSTR_KNOWN(ZEND_STR_STRING), &tmp);
                        }
                }
                zval_ptr_dtor(&tmp);
index 05ffb41f265d6645ae09a1ee8fb937679ac21efc..6683c3968b5b20510fc367b7754d051bb91d27d2 100644 (file)
@@ -280,7 +280,7 @@ static HRESULT STDMETHODCALLTYPE disp_invokeex(
                if (wFlags & DISPATCH_PROPERTYGET) {
                        retval = zend_read_property(Z_OBJCE(disp->object), Z_OBJ(disp->object), Z_STRVAL_P(name), Z_STRLEN_P(name)+1, 1, &rv);
                } else if (wFlags & DISPATCH_PROPERTYPUT) {
-                       zend_update_property(Z_OBJCE(disp->object), &disp->object, Z_STRVAL_P(name), Z_STRLEN_P(name), &params[0]);
+                       zend_update_property(Z_OBJCE(disp->object), Z_OBJ(disp->object), Z_STRVAL_P(name), Z_STRLEN_P(name), &params[0]);
                } else if (wFlags & DISPATCH_METHOD) {
                        zend_try {
                                retval = &rv;
index 950b670d84ec22bfed2ef13176a6e526c88ce4c4..4a2b8328b9b722b0f9abdd647dc67190bea3e1d1 100644 (file)
@@ -39,14 +39,14 @@ static void curlfile_ctor(INTERNAL_FUNCTION_PARAMETERS)
                Z_PARAM_STR_OR_NULL(postname)
        ZEND_PARSE_PARAMETERS_END();
 
-       zend_update_property_string(curl_CURLFile_class, cf, "name", sizeof("name")-1, ZSTR_VAL(fname));
+       zend_update_property_string(curl_CURLFile_class, Z_OBJ_P(cf), "name", sizeof("name")-1, ZSTR_VAL(fname));
 
        if (mime) {
-               zend_update_property_string(curl_CURLFile_class, cf, "mime", sizeof("mime")-1, ZSTR_VAL(mime));
+               zend_update_property_string(curl_CURLFile_class, Z_OBJ_P(cf), "mime", sizeof("mime")-1, ZSTR_VAL(mime));
        }
 
        if (postname) {
-               zend_update_property_string(curl_CURLFile_class, cf, "postname", sizeof("postname")-1, ZSTR_VAL(postname));
+               zend_update_property_string(curl_CURLFile_class, Z_OBJ_P(cf), "postname", sizeof("postname")-1, ZSTR_VAL(postname));
        }
 }
 
@@ -83,7 +83,7 @@ static void curlfile_set_property(char *name, size_t name_len, INTERNAL_FUNCTION
                Z_PARAM_STR(arg)
        ZEND_PARSE_PARAMETERS_END();
 
-       zend_update_property_string(curl_CURLFile_class, ZEND_THIS, name, name_len, ZSTR_VAL(arg));
+       zend_update_property_string(curl_CURLFile_class, Z_OBJ_P(ZEND_THIS), name, name_len, ZSTR_VAL(arg));
 }
 
 /* {{{ Get file name */
index efc6449fea6a4fdb2190cc9201c0cc798978c478..9b57cf16bb09d22b0af68ed6ea59bb34201aa3d6 100644 (file)
@@ -54,7 +54,7 @@ int transliterator_object_construct( zval *object,
        }
 
        ZVAL_NEW_STR(&tmp, u8str);
-       zend_update_property(Transliterator_ce_ptr, object,
+       zend_update_property(Transliterator_ce_ptr, Z_OBJ_P(object),
                "id", sizeof( "id" ) - 1, &tmp );
        GC_DELREF(u8str);
        return SUCCESS;
index d8a8d4dad149b5286ce02af8680a81037b2deb77..e7c0fa8551472d3d28b0694d4939e42ae357948e 100644 (file)
@@ -46,20 +46,20 @@ void php_mysqli_throw_sql_exception(char *sqlstate, int errorno, char *format, .
        object_init_ex(&sql_ex, mysqli_exception_class_entry);
 
        if (message) {
-               zend_update_property_string(mysqli_exception_class_entry, &sql_ex, "message", sizeof("message") - 1,
-                                                                       message);
+               zend_update_property_string(
+                       mysqli_exception_class_entry, Z_OBJ(sql_ex), "message", sizeof("message") - 1, message);
        }
 
        if (sqlstate) {
-               zend_update_property_string(mysqli_exception_class_entry, &sql_ex, "sqlstate", sizeof("sqlstate") - 1,
-                                                                       sqlstate);
+               zend_update_property_string(
+                       mysqli_exception_class_entry, Z_OBJ(sql_ex), "sqlstate", sizeof("sqlstate") - 1, sqlstate);
        } else {
-               zend_update_property_string(mysqli_exception_class_entry, &sql_ex, "sqlstate", sizeof("sqlstate") - 1,
-                                                                       "00000");
+               zend_update_property_string(
+                       mysqli_exception_class_entry, Z_OBJ(sql_ex), "sqlstate", sizeof("sqlstate") - 1, "00000");
        }
 
        efree(message);
-       zend_update_property_long(mysqli_exception_class_entry, &sql_ex, "code", sizeof("code") - 1, errorno);
+       zend_update_property_long(mysqli_exception_class_entry, Z_OBJ(sql_ex), "code", sizeof("code") - 1, errorno);
 
        zend_throw_exception_object(&sql_ex);
 }
index f172d44ea93793315639ed69a03ad66e178a13da..8d536bed60abeb34e55be7977e3770723cc7690f 100644 (file)
@@ -77,14 +77,14 @@ void pdo_raise_impl_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *sqlstate
 
                object_init_ex(&ex, pdo_ex);
 
-               zend_update_property_string(def_ex, &ex, "message", sizeof("message")-1, message);
-               zend_update_property_string(def_ex, &ex, "code", sizeof("code")-1, *pdo_err);
+               zend_update_property_string(def_ex, Z_OBJ(ex), "message", sizeof("message")-1, message);
+               zend_update_property_string(def_ex, Z_OBJ(ex), "code", sizeof("code")-1, *pdo_err);
 
                array_init(&info);
 
                add_next_index_string(&info, *pdo_err);
                add_next_index_long(&info, 0);
-               zend_update_property(pdo_ex, &ex, "errorInfo", sizeof("errorInfo")-1, &info);
+               zend_update_property(pdo_ex, Z_OBJ(ex), "errorInfo", sizeof("errorInfo")-1, &info);
                zval_ptr_dtor(&info);
 
                zend_throw_exception_object(&ex);
@@ -152,11 +152,11 @@ PDO_API void pdo_handle_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt) /* {{{ */
 
                object_init_ex(&ex, pdo_ex);
 
-               zend_update_property_str(def_ex, &ex, "message", sizeof("message") - 1, message);
-               zend_update_property_string(def_ex, &ex, "code", sizeof("code") - 1, *pdo_err);
+               zend_update_property_str(def_ex, Z_OBJ(ex), "message", sizeof("message") - 1, message);
+               zend_update_property_string(def_ex, Z_OBJ(ex), "code", sizeof("code") - 1, *pdo_err);
 
                if (!Z_ISUNDEF(info)) {
-                       zend_update_property(pdo_ex, &ex, "errorInfo", sizeof("errorInfo") - 1, &info);
+                       zend_update_property(pdo_ex, Z_OBJ(ex), "errorInfo", sizeof("errorInfo") - 1, &info);
                }
 
                zend_throw_exception_object(&ex);
index ce008d09c7f87a7c197228c06f9258e5dac133f6..ac3ee5041ccc6193df9e41beb06a608d01cd2be3 100644 (file)
@@ -997,7 +997,7 @@ static int do_fetch(pdo_stmt_t *stmt, int do_bind, zval *return_value, enum pdo_
 
                                case PDO_FETCH_OBJ:
                                case PDO_FETCH_INTO:
-                                       zend_update_property_ex(NULL, return_value,
+                                       zend_update_property_ex(NULL, Z_OBJ_P(return_value),
                                                stmt->columns[i].name,
                                                &val);
                                        zval_ptr_dtor(&val);
@@ -1005,7 +1005,7 @@ static int do_fetch(pdo_stmt_t *stmt, int do_bind, zval *return_value, enum pdo_
 
                                case PDO_FETCH_CLASS:
                                        if ((flags & PDO_FETCH_SERIALIZE) == 0 || idx) {
-                                               zend_update_property_ex(ce, return_value,
+                                               zend_update_property_ex(ce, Z_OBJ_P(return_value),
                                                        stmt->columns[i].name,
                                                        &val);
                                                zval_ptr_dtor(&val);
index 4d860c2a58a82220c06ec1c6586e711e08a59ca7..a24d72c747d8b4469473d708bde947bbe68ee325 100644 (file)
@@ -5360,7 +5360,7 @@ ZEND_METHOD(ReflectionProperty, setValue)
                        RETURN_THROWS();
                }
 
-               zend_update_property_ex(intern->ce, object, ref->unmangled_name, value);
+               zend_update_property_ex(intern->ce, Z_OBJ_P(object), ref->unmangled_name, value);
        }
 }
 /* }}} */
index d8270b1e3aa80c4f4e97ccbefd8ca81e11176253..affc771b0b07dc91067fe476e75603723b37fddb 100644 (file)
@@ -1163,7 +1163,7 @@ static xmlNodePtr to_xml_null(encodeTypePtr type, zval *data, int style, xmlNode
 
 static void set_zval_property(zval* object, char* name, zval* val)
 {
-       zend_update_property(Z_OBJCE_P(object), object, name, strlen(name), val);
+       zend_update_property(Z_OBJCE_P(object), Z_OBJ_P(object), name, strlen(name), val);
        Z_TRY_DELREF_P(val);
 }
 
index 8dc05c38029e52cc71f776d2f8309383cefabced..58b4f037f360eca2b59e8bad1d403bb698b9ee29 100644 (file)
@@ -2941,7 +2941,7 @@ static void set_soap_fault(zval *obj, char *fault_code_ns, char *fault_code, cha
        }
 
        add_property_string(obj, "faultstring", fault_string ? fault_string : "");
-       zend_update_property_string(zend_ce_exception, obj, "message", sizeof("message")-1, (fault_string ? fault_string : ""));
+       zend_update_property_string(zend_ce_exception, Z_OBJ_P(obj), "message", sizeof("message")-1, (fault_string ? fault_string : ""));
 
        if (fault_code != NULL) {
                int soap_version = SOAP_GLOBAL(soap_version);
index 3d44d10af0ec07174c5cdcd590fa56a836ab866a..9f8fdd820c4bcb95e95e0ac754b4d67fa27c4471 100644 (file)
@@ -720,11 +720,10 @@ static inline void phpdbg_handle_exception(void) /* {{{ */
        zend_object *ex = EG(exception);
        zend_string *msg, *file;
        zend_long line;
-       zval zv, rv, tmp;
+       zval rv, tmp;
 
        EG(exception) = NULL;
 
-       ZVAL_OBJ(&zv, ex);
        zend_call_known_instance_method_with_0_params(ex->ce->__tostring, ex, &tmp);
        file = zval_get_string(zend_read_property(zend_get_exception_base(ex), ex, ZEND_STRL("file"), 1, &rv));
        line = zval_get_long(zend_read_property(zend_get_exception_base(ex), ex, ZEND_STRL("line"), 1, &rv));
@@ -733,7 +732,7 @@ static inline void phpdbg_handle_exception(void) /* {{{ */
                EG(exception) = NULL;
                msg = ZSTR_EMPTY_ALLOC();
        } else {
-               zend_update_property_string(zend_get_exception_base(ex), &zv, ZEND_STRL("string"), Z_STRVAL(tmp));
+               zend_update_property_string(zend_get_exception_base(ex), ex, ZEND_STRL("string"), Z_STRVAL(tmp));
                zval_ptr_dtor(&tmp);
                msg = zval_get_string(zend_read_property(zend_get_exception_base(ex), ex, ZEND_STRL("string"), 1, &rv));
        }