From d861d47034eee36834df9bbfbc352f91a0aa1d1f Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 21 Jun 2005 12:10:59 +0000 Subject: [PATCH] Fixed bug #31213 (Sideeffects caused by fix of bug #29493) --- NEWS | 1 + ext/standard/array.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 63d66b1eb9..cc85e6295b 100644 --- a/NEWS +++ b/NEWS @@ -130,6 +130,7 @@ PHP NEWS serializer). (Dmitry) - Fixed bug #31465 (False warning in unpack() when working with *). (Ilia) - Fixed bug #31363 (broken non-blocking flock()). ian at snork dot net +- Fixed bug #31213 (Sideeffects caused by fix of bug #29493). (Dmitry) - Fixed bug #30961 (Wrong linenumber in ReflectionClass getStartLine()). (Dmitry) - Fixed bug #30889 (Conflict between __get/__set and ++ operator). (Dmitry) diff --git a/ext/standard/array.c b/ext/standard/array.c index 953b667507..18c92beeba 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1400,7 +1400,11 @@ PHP_FUNCTION(extract) *orig_var = *entry; } else { - (*entry)->is_ref = 1; + if ((*var_array)->refcount > 1) { + SEPARATE_ZVAL_TO_MAKE_IS_REF(entry); + } else { + (*entry)->is_ref = 1; + } zval_add_ref(entry); zend_hash_update(EG(active_symbol_table), final_name.c, final_name.len+1, (void **) entry, sizeof(zval *), NULL); } -- 2.50.1