From: Dmitry Stogov Date: Thu, 28 Aug 2014 16:51:22 +0000 (+0400) Subject: Duplicate array only if neccessary X-Git-Tag: PRE_PHP7_REMOVALS~216 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c8ff3421a0531a596e7761d50062c3e270c11535;p=php Duplicate array only if neccessary --- diff --git a/ext/standard/array.c b/ext/standard/array.c index 81ecfd74f1..09aaddfbf5 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1365,11 +1365,14 @@ PHP_FUNCTION(extract) int extract_refs = 0; zend_array *symbol_table; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/|lz/", &var_array, &extract_type, &prefix) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|lz/", &var_array, &extract_type, &prefix) == FAILURE) { return; } extract_refs = (extract_type & EXTR_REFS); + if (extract_refs) { + SEPARATE_ZVAL(var_array); + } extract_type &= 0xff; if (extract_type < EXTR_OVERWRITE || extract_type > EXTR_IF_EXISTS) {