mirror of
https://github.com/php/php-src.git
synced 2026-04-05 07:02:33 +02:00
Fixed refcounted
This commit is contained in:
@@ -677,18 +677,18 @@ END_EXTERN_C()
|
||||
\
|
||||
if ((orig_var = zend_hash_str_find(symtable, (name), (name_length))) != NULL \
|
||||
&& Z_ISREF_P(orig_var)) { \
|
||||
Z_SET_REFCOUNT_P(var, Z_REFCOUNT_P(orig_var)); \
|
||||
/*???Z_SET_ISREF_P(var);*/ \
|
||||
\
|
||||
if (_refcount) { \
|
||||
Z_SET_REFCOUNT_P(var, Z_REFCOUNT_P(var) + _refcount - 1); \
|
||||
if (Z_REFCOUNTED_P(var)) { \
|
||||
Z_SET_REFCOUNT_P(var, Z_REFCOUNT_P(orig_var)); \
|
||||
if (_refcount) { \
|
||||
Z_SET_REFCOUNT_P(var, Z_REFCOUNT_P(var) + _refcount - 1); \
|
||||
} \
|
||||
} \
|
||||
zval_dtor(orig_var); \
|
||||
ZVAL_COPY_VALUE(orig_var, var); \
|
||||
/*???FREE_ZVAL(var);*/ \
|
||||
} else { \
|
||||
/*???Z_SET_ISREF_TO_P(var, _is_ref);*/ \
|
||||
if (_refcount) { \
|
||||
if (_refcount && Z_REFCOUNTED_P(var)) { \
|
||||
Z_SET_REFCOUNT_P(var, _refcount); \
|
||||
} \
|
||||
zend_hash_str_update(symtable, (name), (name_length), var); \
|
||||
|
||||
@@ -1392,7 +1392,7 @@ PHP_FUNCTION(extract)
|
||||
}
|
||||
} else {
|
||||
ZVAL_DUP(&data, entry);
|
||||
ZEND_SET_SYMBOL_WITH_LENGTH(EG(active_symbol_table), Z_STRVAL(final_name), Z_STRLEN(final_name) + 1, &data, 1, 0);
|
||||
ZEND_SET_SYMBOL_WITH_LENGTH(EG(active_symbol_table), Z_STRVAL(final_name), Z_STRLEN(final_name), &data, 1, 0);
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user