com php-src: Consider op1 literal of FETCH_OBJ_R: ext/o pcache/Optimizer/compact_literals.c
| From: | Nikita Popov | Date: | Wed, 29 Jul 2020 15:04:23 +0000 |
| Subject: | com php-src: Consider op1 literal of FETCH_OBJ_R: ext/o pcache/Optimizer/compact_literals.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-112441@lists.php.net to get a copy of this message | ||
Commit: 57ad5b34325db883726ec96c0683c7c1bd874cc4
Author: Nikita Popov <nikita.ppv@gmail.com> Wed, 29 Jul 2020 17:04:23 +0200
Parents: 99c48a24779dab32e004b2bc99441155e217c08f
Branches: PHP-7.3 PHP-7.4 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=57ad5b34325db883726ec96c0683c7c1bd874cc4
Log:
Consider op1 literal of FETCH_OBJ_R
FETCH_OBJ_R may have an op1 CONST operand, even though it will
always error. We should take this into account when compacting
literals.
Changed paths:
M ext/opcache/Optimizer/compact_literals.c
Diff:
diff --git a/ext/opcache/Optimizer/compact_literals.c b/ext/opcache/Optimizer/compact_literals.c
index e4dab13b9c..f90b8175c3 100644
--- a/ext/opcache/Optimizer/compact_literals.c
+++ b/ext/opcache/Optimizer/compact_literals.c
@@ -223,6 +223,9 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
case ZEND_POST_INC_OBJ:
case ZEND_POST_DEC_OBJ:
case ZEND_ISSET_ISEMPTY_PROP_OBJ:
+ if (opline->op1_type == IS_CONST) {
+ LITERAL_INFO(opline->op1.constant, LITERAL_VALUE, 1);
+ }
if (opline->op2_type == IS_CONST) {
LITERAL_INFO(opline->op2.constant, LITERAL_PROPERTY, 1);
}