From: Nikita Popov Date: Fri, 7 Aug 2020 13:27:57 +0000 (+0200) Subject: Accept zend_object* in zend_update_property X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8b77c58130f356093adadd0b86f797d3e2af9f68;p=php Accept zend_object* in zend_update_property --- diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 7a13d78c6a..b82e4fbc16 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -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; diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 7707bbc001..b6f5944078 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -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); diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 27a1388ad9..de95b2a8c0 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -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); diff --git a/ext/com_dotnet/com_wrapper.c b/ext/com_dotnet/com_wrapper.c index 05ffb41f26..6683c3968b 100644 --- a/ext/com_dotnet/com_wrapper.c +++ b/ext/com_dotnet/com_wrapper.c @@ -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), ¶ms[0]); + zend_update_property(Z_OBJCE(disp->object), Z_OBJ(disp->object), Z_STRVAL_P(name), Z_STRLEN_P(name), ¶ms[0]); } else if (wFlags & DISPATCH_METHOD) { zend_try { retval = &rv; diff --git a/ext/curl/curl_file.c b/ext/curl/curl_file.c index 950b670d84..4a2b8328b9 100644 --- a/ext/curl/curl_file.c +++ b/ext/curl/curl_file.c @@ -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 */ diff --git a/ext/intl/transliterator/transliterator_class.c b/ext/intl/transliterator/transliterator_class.c index efc6449fea..9b57cf16bb 100644 --- a/ext/intl/transliterator/transliterator_class.c +++ b/ext/intl/transliterator/transliterator_class.c @@ -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; diff --git a/ext/mysqli/mysqli_exception.c b/ext/mysqli/mysqli_exception.c index d8a8d4dad1..e7c0fa8551 100644 --- a/ext/mysqli/mysqli_exception.c +++ b/ext/mysqli/mysqli_exception.c @@ -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); } diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index f172d44ea9..8d536bed60 100644 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -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); diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index ce008d09c7..ac3ee5041c 100644 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -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); diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 4d860c2a58..a24d72c747 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -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); } } /* }}} */ diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index d8270b1e3a..affc771b0b 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -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); } diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 8dc05c3802..58b4f037f3 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -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); diff --git a/sapi/phpdbg/phpdbg_prompt.c b/sapi/phpdbg/phpdbg_prompt.c index 3d44d10af0..9f8fdd820c 100644 --- a/sapi/phpdbg/phpdbg_prompt.c +++ b/sapi/phpdbg/phpdbg_prompt.c @@ -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)); }