]> granicus.if.org Git - php/commitdiff
Fix deoptimization info and corresponding memory leaks
authorDmitry Stogov <dmitry@zend.com>
Tue, 21 Jul 2020 19:58:24 +0000 (22:58 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 21 Jul 2020 19:58:24 +0000 (22:58 +0300)
ext/opcache/jit/zend_jit_x86.dasc

index 9bf9f895409d186575eefff6c74fb0f0cc3cca52..7b21de962667fd6ef9cc9752a46a7d937eb11efd 100644 (file)
@@ -10405,11 +10405,11 @@ static int zend_jit_fetch_dim_read(dasm_State **Dst, const zend_op *opline, cons
 
                if ((opline->op1_type & (IS_VAR|IS_TMP_VAR))
                 && !(op1_info & AVOID_REFCOUNTING)) {
-                       flags = ZEND_JIT_EXIT_FREE_OP1;
+                       flags |= ZEND_JIT_EXIT_FREE_OP1;
                }
                if ((opline->op2_type & (IS_VAR|IS_TMP_VAR))
                 && (op2_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
-                       flags = ZEND_JIT_EXIT_FREE_OP2;
+                       flags |= ZEND_JIT_EXIT_FREE_OP2;
                }
                if ((res_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))
                 && (ssa_op+1)->op1_use == ssa_op->result_def