mirror of
https://github.com/php/php-src.git
synced 2026-04-09 00:53:30 +02:00
Fixed IS_REFERENCE separation
This commit is contained in:
@@ -696,7 +696,10 @@ END_EXTERN_C()
|
||||
zval *_zv = (zv); \
|
||||
if (Z_REFCOUNTED_P(_zv)) { \
|
||||
if (Z_REFCOUNT_P(_zv) > 1) { \
|
||||
if (Z_TYPE_P(_zv) == IS_OBJECT || \
|
||||
if (Z_ISREF_P(_zv)) { \
|
||||
Z_DELREF_P(_zv); \
|
||||
ZVAL_DUP(_zv, Z_REFVAL_P(_zv)); \
|
||||
} else if (Z_TYPE_P(_zv) == IS_OBJECT ||\
|
||||
Z_TYPE_P(_zv) == IS_RESOURCE) { \
|
||||
Z_ADDREF_P(_zv); \
|
||||
} else { \
|
||||
|
||||
@@ -638,9 +638,10 @@ found:
|
||||
} else if (EXPECTED(property_info != NULL)) {
|
||||
/* if we assign referenced variable, we should separate it */
|
||||
if (IS_REFCOUNTED(Z_TYPE_P(value))) {
|
||||
Z_ADDREF_P(value);
|
||||
if (Z_ISREF_P(value)) {
|
||||
SEPARATE_ZVAL(value);
|
||||
ZVAL_DUP(value, Z_REFVAL_P(value));
|
||||
} else {
|
||||
Z_ADDREF_P(value);
|
||||
}
|
||||
}
|
||||
if (EXPECTED((property_info->flags & ZEND_ACC_STATIC) == 0) &&
|
||||
|
||||
Reference in New Issue
Block a user