]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.4'
authorNikita Popov <nikita.ppv@gmail.com>
Mon, 24 Aug 2020 14:23:33 +0000 (16:23 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 24 Aug 2020 14:23:33 +0000 (16:23 +0200)
* PHP-7.4:
  Fix refcounting

1  2 
Zend/zend_execute_API.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

Simple merge
index 805f8f0a3e0f0abb59b328f2ddf0654565428f36,233138cded1dbc49da857289ccab01fb83d0415b..a585a60fbf38c911b3b88fa650c77b8d53f0f04f
@@@ -5280,13 -5187,12 +5281,14 @@@ ZEND_VM_C_LABEL(send_array)
                                if (EXPECTED(!must_wrap)) {
                                        ZVAL_COPY(param, arg);
                                } else {
+                                       Z_TRY_ADDREF_P(arg);
                                        ZVAL_NEW_REF(param, arg);
                                }
 -                              ZEND_CALL_NUM_ARGS(EX(call))++;
 -                              arg_num++;
 -                              param++;
 +                              if (!name) {
 +                                      ZEND_CALL_NUM_ARGS(EX(call))++;
 +                                      arg_num++;
 +                                      param++;
 +                              }
                        } ZEND_HASH_FOREACH_END();
                }
        }
index d87edfc570e56ffbd5589893bb20962c469467e3,941c1c48f66c7250d5fff7e2160c4fba44bf5697..6f0bb9197b603fd75fc7a06d89be0a34eb1fa76c
@@@ -2175,13 -2131,12 +2176,14 @@@ send_array
                                if (EXPECTED(!must_wrap)) {
                                        ZVAL_COPY(param, arg);
                                } else {
+                                       Z_TRY_ADDREF_P(arg);
                                        ZVAL_NEW_REF(param, arg);
                                }
 -                              ZEND_CALL_NUM_ARGS(EX(call))++;
 -                              arg_num++;
 -                              param++;
 +                              if (!name) {
 +                                      ZEND_CALL_NUM_ARGS(EX(call))++;
 +                                      arg_num++;
 +                                      param++;
 +                              }
                        } ZEND_HASH_FOREACH_END();
                }
        }