Skip to content

Commit 8b77c58

Browse files
committed
Accept zend_object* in zend_update_property
1 parent 01cbb59 commit 8b77c58

File tree

13 files changed

+71
-74
lines changed

13 files changed

+71
-74
lines changed

Zend/zend_API.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3971,34 +3971,34 @@ ZEND_API void zend_declare_class_constant_string(zend_class_entry *ce, const cha
39713971
}
39723972
/* }}} */
39733973

3974-
ZEND_API void zend_update_property_ex(zend_class_entry *scope, zval *object, zend_string *name, zval *value) /* {{{ */
3974+
ZEND_API void zend_update_property_ex(zend_class_entry *scope, zend_object *object, zend_string *name, zval *value) /* {{{ */
39753975
{
39763976
zend_class_entry *old_scope = EG(fake_scope);
39773977

39783978
EG(fake_scope) = scope;
39793979

3980-
Z_OBJ_HT_P(object)->write_property(Z_OBJ_P(object), name, value, NULL);
3980+
object->handlers->write_property(object, name, value, NULL);
39813981

39823982
EG(fake_scope) = old_scope;
39833983
}
39843984
/* }}} */
39853985

3986-
ZEND_API void zend_update_property(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zval *value) /* {{{ */
3986+
ZEND_API void zend_update_property(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zval *value) /* {{{ */
39873987
{
39883988
zend_string *property;
39893989
zend_class_entry *old_scope = EG(fake_scope);
39903990

39913991
EG(fake_scope) = scope;
39923992

39933993
property = zend_string_init(name, name_length, 0);
3994-
Z_OBJ_HT_P(object)->write_property(Z_OBJ_P(object), property, value, NULL);
3994+
object->handlers->write_property(object, property, value, NULL);
39953995
zend_string_release_ex(property, 0);
39963996

39973997
EG(fake_scope) = old_scope;
39983998
}
39993999
/* }}} */
40004000

4001-
ZEND_API void zend_update_property_null(zend_class_entry *scope, zval *object, const char *name, size_t name_length) /* {{{ */
4001+
ZEND_API void zend_update_property_null(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length) /* {{{ */
40024002
{
40034003
zval tmp;
40044004

@@ -4022,7 +4022,7 @@ ZEND_API void zend_unset_property(zend_class_entry *scope, zend_object *object,
40224022
}
40234023
/* }}} */
40244024

4025-
ZEND_API void zend_update_property_bool(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_long value) /* {{{ */
4025+
ZEND_API void zend_update_property_bool(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_long value) /* {{{ */
40264026
{
40274027
zval tmp;
40284028

@@ -4031,7 +4031,7 @@ ZEND_API void zend_update_property_bool(zend_class_entry *scope, zval *object, c
40314031
}
40324032
/* }}} */
40334033

4034-
ZEND_API void zend_update_property_long(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_long value) /* {{{ */
4034+
ZEND_API void zend_update_property_long(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_long value) /* {{{ */
40354035
{
40364036
zval tmp;
40374037

@@ -4040,7 +4040,7 @@ ZEND_API void zend_update_property_long(zend_class_entry *scope, zval *object, c
40404040
}
40414041
/* }}} */
40424042

4043-
ZEND_API void zend_update_property_double(zend_class_entry *scope, zval *object, const char *name, size_t name_length, double value) /* {{{ */
4043+
ZEND_API void zend_update_property_double(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, double value) /* {{{ */
40444044
{
40454045
zval tmp;
40464046

@@ -4049,7 +4049,7 @@ ZEND_API void zend_update_property_double(zend_class_entry *scope, zval *object,
40494049
}
40504050
/* }}} */
40514051

4052-
ZEND_API void zend_update_property_str(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_string *value) /* {{{ */
4052+
ZEND_API void zend_update_property_str(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_string *value) /* {{{ */
40534053
{
40544054
zval tmp;
40554055

@@ -4058,7 +4058,7 @@ ZEND_API void zend_update_property_str(zend_class_entry *scope, zval *object, co
40584058
}
40594059
/* }}} */
40604060

4061-
ZEND_API void zend_update_property_string(zend_class_entry *scope, zval *object, const char *name, size_t name_length, const char *value) /* {{{ */
4061+
ZEND_API void zend_update_property_string(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, const char *value) /* {{{ */
40624062
{
40634063
zval tmp;
40644064

@@ -4068,7 +4068,7 @@ ZEND_API void zend_update_property_string(zend_class_entry *scope, zval *object,
40684068
}
40694069
/* }}} */
40704070

4071-
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) /* {{{ */
4071+
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) /* {{{ */
40724072
{
40734073
zval tmp;
40744074

Zend/zend_API.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -380,15 +380,15 @@ ZEND_API void zend_declare_class_constant_string(zend_class_entry *ce, const cha
380380

381381
ZEND_API int zend_update_class_constants(zend_class_entry *class_type);
382382

383-
ZEND_API void zend_update_property_ex(zend_class_entry *scope, zval *object, zend_string *name, zval *value);
384-
ZEND_API void zend_update_property(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zval *value);
385-
ZEND_API void zend_update_property_null(zend_class_entry *scope, zval *object, const char *name, size_t name_length);
386-
ZEND_API void zend_update_property_bool(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_long value);
387-
ZEND_API void zend_update_property_long(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_long value);
388-
ZEND_API void zend_update_property_double(zend_class_entry *scope, zval *object, const char *name, size_t name_length, double value);
389-
ZEND_API void zend_update_property_str(zend_class_entry *scope, zval *object, const char *name, size_t name_length, zend_string *value);
390-
ZEND_API void zend_update_property_string(zend_class_entry *scope, zval *object, const char *name, size_t name_length, const char *value);
391-
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);
383+
ZEND_API void zend_update_property_ex(zend_class_entry *scope, zend_object *object, zend_string *name, zval *value);
384+
ZEND_API void zend_update_property(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zval *value);
385+
ZEND_API void zend_update_property_null(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length);
386+
ZEND_API void zend_update_property_bool(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_long value);
387+
ZEND_API void zend_update_property_long(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_long value);
388+
ZEND_API void zend_update_property_double(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, double value);
389+
ZEND_API void zend_update_property_str(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_string *value);
390+
ZEND_API void zend_update_property_string(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, const char *value);
391+
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);
392392
ZEND_API void zend_unset_property(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length);
393393

394394
ZEND_API int zend_update_static_property_ex(zend_class_entry *scope, zend_string *name, zval *value);

Zend/zend_exceptions.c

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ void zend_exception_set_previous(zend_object *exception, zend_object *add_previo
110110
base_ce = i_get_exception_base(Z_OBJ_P(ex));
111111
previous = zend_read_property_ex(base_ce, Z_OBJ_P(ex), ZSTR_KNOWN(ZEND_STR_PREVIOUS), 1, &rv);
112112
if (Z_TYPE_P(previous) == IS_NULL) {
113-
zend_update_property_ex(base_ce, ex, ZSTR_KNOWN(ZEND_STR_PREVIOUS), &pv);
113+
zend_update_property_ex(base_ce, Z_OBJ_P(ex), ZSTR_KNOWN(ZEND_STR_PREVIOUS), &pv);
114114
GC_DELREF(add_previous);
115115
return;
116116
}
@@ -215,14 +215,13 @@ ZEND_API void zend_clear_exception(void) /* {{{ */
215215

216216
static zend_object *zend_default_exception_new_ex(zend_class_entry *class_type, int skip_top_traces) /* {{{ */
217217
{
218-
zval obj, tmp;
219-
zend_object *object;
218+
zval tmp;
220219
zval trace;
221220
zend_class_entry *base_ce;
222221
zend_string *filename;
223222

224-
Z_OBJ(obj) = object = zend_objects_new(class_type);
225-
Z_OBJ_HT(obj) = &default_exception_handlers;
223+
zend_object *object = zend_objects_new(class_type);
224+
object->handlers = &default_exception_handlers;
226225

227226
object_properties_init(object, class_type);
228227

@@ -240,17 +239,17 @@ static zend_object *zend_default_exception_new_ex(zend_class_entry *class_type,
240239
if (EXPECTED((class_type != zend_ce_parse_error && class_type != zend_ce_compile_error)
241240
|| !(filename = zend_get_compiled_filename()))) {
242241
ZVAL_STRING(&tmp, zend_get_executed_filename());
243-
zend_update_property_ex(base_ce, &obj, ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
242+
zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
244243
zval_ptr_dtor(&tmp);
245244
ZVAL_LONG(&tmp, zend_get_executed_lineno());
246-
zend_update_property_ex(base_ce, &obj, ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
245+
zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
247246
} else {
248247
ZVAL_STR(&tmp, filename);
249-
zend_update_property_ex(base_ce, &obj, ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
248+
zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
250249
ZVAL_LONG(&tmp, zend_get_compiled_lineno());
251-
zend_update_property_ex(base_ce, &obj, ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
250+
zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
252251
}
253-
zend_update_property_ex(base_ce, &obj, ZSTR_KNOWN(ZEND_STR_TRACE), &trace);
252+
zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_TRACE), &trace);
254253

255254
return object;
256255
}
@@ -293,16 +292,16 @@ ZEND_METHOD(Exception, __construct)
293292

294293
if (message) {
295294
ZVAL_STR(&tmp, message);
296-
zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
295+
zend_update_property_ex(base_ce, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
297296
}
298297

299298
if (code) {
300299
ZVAL_LONG(&tmp, code);
301-
zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
300+
zend_update_property_ex(base_ce, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
302301
}
303302

304303
if (previous) {
305-
zend_update_property_ex(base_ce, object, ZSTR_KNOWN(ZEND_STR_PREVIOUS), previous);
304+
zend_update_property_ex(base_ce, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_PREVIOUS), previous);
306305
}
307306
}
308307
/* }}} */
@@ -345,31 +344,31 @@ ZEND_METHOD(ErrorException, __construct)
345344

346345
if (message) {
347346
ZVAL_STR_COPY(&tmp, message);
348-
zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
347+
zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
349348
zval_ptr_dtor(&tmp);
350349
}
351350

352351
if (code) {
353352
ZVAL_LONG(&tmp, code);
354-
zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
353+
zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
355354
}
356355

357356
if (previous) {
358-
zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_PREVIOUS), previous);
357+
zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_PREVIOUS), previous);
359358
}
360359

361360
ZVAL_LONG(&tmp, severity);
362-
zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_SEVERITY), &tmp);
361+
zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_SEVERITY), &tmp);
363362

364363
if (argc >= 4) {
365364
ZVAL_STR_COPY(&tmp, filename);
366-
zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
365+
zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_FILE), &tmp);
367366
zval_ptr_dtor(&tmp);
368367
if (argc < 5) {
369368
lineno = 0; /* invalidate lineno */
370369
}
371370
ZVAL_LONG(&tmp, lineno);
372-
zend_update_property_ex(zend_ce_exception, object, ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
371+
zend_update_property_ex(zend_ce_exception, Z_OBJ_P(object), ZSTR_KNOWN(ZEND_STR_LINE), &tmp);
373372
}
374373
}
375374
/* }}} */
@@ -726,7 +725,7 @@ ZEND_METHOD(Exception, __toString)
726725
/* We store the result in the private property string so we can access
727726
* the result in uncaught exception handlers without memleaks. */
728727
ZVAL_STR(&tmp, str);
729-
zend_update_property_ex(base_ce, exception, ZSTR_KNOWN(ZEND_STR_STRING), &tmp);
728+
zend_update_property_ex(base_ce, Z_OBJ_P(exception), ZSTR_KNOWN(ZEND_STR_STRING), &tmp);
730729

731730
RETURN_STR(str);
732731
}
@@ -847,11 +846,11 @@ static zend_object *zend_throw_exception_zstr(zend_class_entry *exception_ce, ze
847846

848847
if (message) {
849848
ZVAL_STR(&tmp, message);
850-
zend_update_property_ex(exception_ce, &ex, ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
849+
zend_update_property_ex(exception_ce, Z_OBJ(ex), ZSTR_KNOWN(ZEND_STR_MESSAGE), &tmp);
851850
}
852851
if (code) {
853852
ZVAL_LONG(&tmp, code);
854-
zend_update_property_ex(exception_ce, &ex, ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
853+
zend_update_property_ex(exception_ce, Z_OBJ(ex), ZSTR_KNOWN(ZEND_STR_CODE), &tmp);
855854
}
856855

857856
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
888887

889888
ZEND_API ZEND_COLD zend_object *zend_throw_error_exception(zend_class_entry *exception_ce, zend_string *message, zend_long code, int severity) /* {{{ */
890889
{
891-
zval ex, tmp;
890+
zval tmp;
892891
zend_object *obj = zend_throw_exception_zstr(exception_ce, message, code);
893-
ZVAL_OBJ(&ex, obj);
894892
ZVAL_LONG(&tmp, severity);
895-
zend_update_property_ex(zend_ce_error_exception, &ex, ZSTR_KNOWN(ZEND_STR_SEVERITY), &tmp);
893+
zend_update_property_ex(zend_ce_error_exception, obj, ZSTR_KNOWN(ZEND_STR_SEVERITY), &tmp);
896894
return obj;
897895
}
898896
/* }}} */
@@ -935,12 +933,12 @@ ZEND_API ZEND_COLD int zend_exception_error(zend_object *ex, int severity) /* {{
935933
zend_string *str, *file = NULL;
936934
zend_long line = 0;
937935

938-
zend_call_known_instance_method_with_0_params(ex->ce->__tostring, Z_OBJ(exception), &tmp);
936+
zend_call_known_instance_method_with_0_params(ex->ce->__tostring, ex, &tmp);
939937
if (!EG(exception)) {
940938
if (Z_TYPE(tmp) != IS_STRING) {
941939
zend_error(E_WARNING, "%s::__toString() must return a string", ZSTR_VAL(ce_exception->name));
942940
} else {
943-
zend_update_property_ex(i_get_exception_base(ex), &exception, ZSTR_KNOWN(ZEND_STR_STRING), &tmp);
941+
zend_update_property_ex(i_get_exception_base(ex), ex, ZSTR_KNOWN(ZEND_STR_STRING), &tmp);
944942
}
945943
}
946944
zval_ptr_dtor(&tmp);

ext/com_dotnet/com_wrapper.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ static HRESULT STDMETHODCALLTYPE disp_invokeex(
280280
if (wFlags & DISPATCH_PROPERTYGET) {
281281
retval = zend_read_property(Z_OBJCE(disp->object), Z_OBJ(disp->object), Z_STRVAL_P(name), Z_STRLEN_P(name)+1, 1, &rv);
282282
} else if (wFlags & DISPATCH_PROPERTYPUT) {
283-
zend_update_property(Z_OBJCE(disp->object), &disp->object, Z_STRVAL_P(name), Z_STRLEN_P(name), &params[0]);
283+
zend_update_property(Z_OBJCE(disp->object), Z_OBJ(disp->object), Z_STRVAL_P(name), Z_STRLEN_P(name), &params[0]);
284284
} else if (wFlags & DISPATCH_METHOD) {
285285
zend_try {
286286
retval = &rv;

ext/curl/curl_file.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ static void curlfile_ctor(INTERNAL_FUNCTION_PARAMETERS)
3939
Z_PARAM_STR_OR_NULL(postname)
4040
ZEND_PARSE_PARAMETERS_END();
4141

42-
zend_update_property_string(curl_CURLFile_class, cf, "name", sizeof("name")-1, ZSTR_VAL(fname));
42+
zend_update_property_string(curl_CURLFile_class, Z_OBJ_P(cf), "name", sizeof("name")-1, ZSTR_VAL(fname));
4343

4444
if (mime) {
45-
zend_update_property_string(curl_CURLFile_class, cf, "mime", sizeof("mime")-1, ZSTR_VAL(mime));
45+
zend_update_property_string(curl_CURLFile_class, Z_OBJ_P(cf), "mime", sizeof("mime")-1, ZSTR_VAL(mime));
4646
}
4747

4848
if (postname) {
49-
zend_update_property_string(curl_CURLFile_class, cf, "postname", sizeof("postname")-1, ZSTR_VAL(postname));
49+
zend_update_property_string(curl_CURLFile_class, Z_OBJ_P(cf), "postname", sizeof("postname")-1, ZSTR_VAL(postname));
5050
}
5151
}
5252

@@ -83,7 +83,7 @@ static void curlfile_set_property(char *name, size_t name_len, INTERNAL_FUNCTION
8383
Z_PARAM_STR(arg)
8484
ZEND_PARSE_PARAMETERS_END();
8585

86-
zend_update_property_string(curl_CURLFile_class, ZEND_THIS, name, name_len, ZSTR_VAL(arg));
86+
zend_update_property_string(curl_CURLFile_class, Z_OBJ_P(ZEND_THIS), name, name_len, ZSTR_VAL(arg));
8787
}
8888

8989
/* {{{ Get file name */

ext/intl/transliterator/transliterator_class.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ int transliterator_object_construct( zval *object,
5454
}
5555

5656
ZVAL_NEW_STR(&tmp, u8str);
57-
zend_update_property(Transliterator_ce_ptr, object,
57+
zend_update_property(Transliterator_ce_ptr, Z_OBJ_P(object),
5858
"id", sizeof( "id" ) - 1, &tmp );
5959
GC_DELREF(u8str);
6060
return SUCCESS;

ext/mysqli/mysqli_exception.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,20 @@ void php_mysqli_throw_sql_exception(char *sqlstate, int errorno, char *format, .
4646
object_init_ex(&sql_ex, mysqli_exception_class_entry);
4747

4848
if (message) {
49-
zend_update_property_string(mysqli_exception_class_entry, &sql_ex, "message", sizeof("message") - 1,
50-
message);
49+
zend_update_property_string(
50+
mysqli_exception_class_entry, Z_OBJ(sql_ex), "message", sizeof("message") - 1, message);
5151
}
5252

5353
if (sqlstate) {
54-
zend_update_property_string(mysqli_exception_class_entry, &sql_ex, "sqlstate", sizeof("sqlstate") - 1,
55-
sqlstate);
54+
zend_update_property_string(
55+
mysqli_exception_class_entry, Z_OBJ(sql_ex), "sqlstate", sizeof("sqlstate") - 1, sqlstate);
5656
} else {
57-
zend_update_property_string(mysqli_exception_class_entry, &sql_ex, "sqlstate", sizeof("sqlstate") - 1,
58-
"00000");
57+
zend_update_property_string(
58+
mysqli_exception_class_entry, Z_OBJ(sql_ex), "sqlstate", sizeof("sqlstate") - 1, "00000");
5959
}
6060

6161
efree(message);
62-
zend_update_property_long(mysqli_exception_class_entry, &sql_ex, "code", sizeof("code") - 1, errorno);
62+
zend_update_property_long(mysqli_exception_class_entry, Z_OBJ(sql_ex), "code", sizeof("code") - 1, errorno);
6363

6464
zend_throw_exception_object(&sql_ex);
6565
}

ext/pdo/pdo_dbh.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@ void pdo_raise_impl_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *sqlstate
7777

7878
object_init_ex(&ex, pdo_ex);
7979

80-
zend_update_property_string(def_ex, &ex, "message", sizeof("message")-1, message);
81-
zend_update_property_string(def_ex, &ex, "code", sizeof("code")-1, *pdo_err);
80+
zend_update_property_string(def_ex, Z_OBJ(ex), "message", sizeof("message")-1, message);
81+
zend_update_property_string(def_ex, Z_OBJ(ex), "code", sizeof("code")-1, *pdo_err);
8282

8383
array_init(&info);
8484

8585
add_next_index_string(&info, *pdo_err);
8686
add_next_index_long(&info, 0);
87-
zend_update_property(pdo_ex, &ex, "errorInfo", sizeof("errorInfo")-1, &info);
87+
zend_update_property(pdo_ex, Z_OBJ(ex), "errorInfo", sizeof("errorInfo")-1, &info);
8888
zval_ptr_dtor(&info);
8989

9090
zend_throw_exception_object(&ex);
@@ -152,11 +152,11 @@ PDO_API void pdo_handle_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt) /* {{{ */
152152

153153
object_init_ex(&ex, pdo_ex);
154154

155-
zend_update_property_str(def_ex, &ex, "message", sizeof("message") - 1, message);
156-
zend_update_property_string(def_ex, &ex, "code", sizeof("code") - 1, *pdo_err);
155+
zend_update_property_str(def_ex, Z_OBJ(ex), "message", sizeof("message") - 1, message);
156+
zend_update_property_string(def_ex, Z_OBJ(ex), "code", sizeof("code") - 1, *pdo_err);
157157

158158
if (!Z_ISUNDEF(info)) {
159-
zend_update_property(pdo_ex, &ex, "errorInfo", sizeof("errorInfo") - 1, &info);
159+
zend_update_property(pdo_ex, Z_OBJ(ex), "errorInfo", sizeof("errorInfo") - 1, &info);
160160
}
161161

162162
zend_throw_exception_object(&ex);

0 commit comments

Comments
 (0)