]> granicus.if.org Git - php/commitdiff
Use cheaper SEPARATE macros
authorDmitry Stogov <dmitry@zend.com>
Thu, 7 Dec 2017 19:35:17 +0000 (22:35 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 7 Dec 2017 19:35:17 +0000 (22:35 +0300)
ext/mbstring/mbstring.c
ext/standard/array.c

index e9b6d4a32c865513fe9b098cda32b5e1814d5f79..7b3297ba6b283a2ebb8a19a50f23e5b4ede13988 100644 (file)
@@ -3734,7 +3734,9 @@ static int mb_recursive_convert_variable(mbfl_buffer_converter *convd, zval *var
                        efree(ret->val);
                }
        } else if (Z_TYPE_P(var) == IS_ARRAY || Z_TYPE_P(var) == IS_OBJECT) {
-               SEPARATE_ZVAL_NOREF(var);
+               if (Z_TYPE_P(var) == IS_ARRAY) {
+                       SEPARATE_ARRAY(var);
+               }
                if (Z_REFCOUNTED_P(var)) {
                        if (Z_IS_RECURSIVE_P(var)) {
                                return 1;
index 7e927d8956aa82c6e98bbf669e22709bfac607b0..dfeaef87475b1e2198b86fb0b54a95cb8e72ee88 100644 (file)
@@ -2467,7 +2467,7 @@ PHP_FUNCTION(extract)
 
        extract_refs = (extract_type & EXTR_REFS);
        if (extract_refs) {
-               SEPARATE_ZVAL(var_array_param);
+               SEPARATE_ZVAL_NOREF(var_array_param);
        }
        extract_type &= 0xff;