]> granicus.if.org Git - php/commitdiff
Restore to the first version fix(sorry, mis-read the codes)
authorXinchen Hui <laruence@gmail.com>
Mon, 15 Feb 2016 05:46:27 +0000 (13:46 +0800)
committerXinchen Hui <laruence@gmail.com>
Mon, 15 Feb 2016 05:47:52 +0000 (13:47 +0800)
ext/opcache/Optimizer/zend_optimizer.c

index e16bef2defbf8735ee479a534022c12b42e78e7b..f398a8392729a797831552bb8a86a384445cfa0b 100644 (file)
@@ -368,18 +368,18 @@ void zend_optimizer_remove_live_range(zend_op_array *op_array, uint32_t var)
                        i++;
                } while (i < op_array->last_live_range);
                if (i != j) {
-                       zend_op *opline = op_array->opcodes;
-                       zend_op *end = opline + op_array->last;
-
-                       op_array->last_live_range = j;
-                       while (opline != end) {
-                               if ((opline->opcode == ZEND_FREE || opline->opcode == ZEND_FE_FREE) &&
-                                   opline->extended_value == ZEND_FREE_ON_RETURN) {
-                                       opline->op2.num = map[opline->op2.num];
+                       if ((op_array->last_live_range = j)) {
+                               zend_op *opline = op_array->opcodes;
+                               zend_op *end = opline + op_array->last;
+
+                               while (opline != end) {
+                                       if ((opline->opcode == ZEND_FREE || opline->opcode == ZEND_FE_FREE) &&
+                                                       opline->extended_value == ZEND_FREE_ON_RETURN) {
+                                               opline->op2.num = map[opline->op2.num];
+                                       }
+                                       opline++;
                                }
-                               opline++;
-                       }
-                       if (j == 0) {
+                       } else {
                                efree(op_array->live_range);
                                op_array->live_range = NULL;
                        }