com php-src: Set proper type flags (REFCOUNTED and COPYABLE) according to interned or regular string: ext/opcache/Optimizer/block_pass .c
| From: | Dmitry Stogov | Date: | Thu, 18 Feb 2016 20:15:38 +0000 |
| Subject: | com php-src: Set proper type flags (REFCOUNTED and COPYABLE) according to interned or regular string: ext/opcache/Optimizer/block_pass .c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-91109@lists.php.net to get a copy of this message | ||
Commit: 796e1629b088cb3580650bd653b0b06d627052d7
Author: Dmitry Stogov <dmitry@zend.com> Thu, 18 Feb 2016 23:15:38 +0300
Parents: 25fbb06e2dde2ec8d15d90aee8eb08df63f346d9
Branches: PHP-7.0 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=796e1629b088cb3580650bd653b0b06d627052d7
Log:
Set proper type flags (REFCOUNTED and COPYABLE) according to interned or regular string
Changed paths:
M ext/opcache/Optimizer/block_pass.c
Diff:
diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c
index f4d65a0..15e6511 100644
--- a/ext/opcache/Optimizer/block_pass.c
+++ b/ext/opcache/Optimizer/block_pass.c
@@ -925,10 +925,7 @@ static void zend_optimize_block(zend_code_block *block, zend_op_array
*op_array,
memcpy(Z_STRVAL(ZEND_OP1_LITERAL(last_op)) + old_len, Z_STRVAL(ZEND_OP1_LITERAL(opline)),
Z_STRLEN(ZEND_OP1_LITERAL(opline)));
Z_STRVAL(ZEND_OP1_LITERAL(last_op))[l] = '\0';
zval_dtor(&ZEND_OP1_LITERAL(opline));
- Z_STR(ZEND_OP1_LITERAL(opline)) = zend_new_interned_string(Z_STR(ZEND_OP1_LITERAL(last_op)));
- if (!Z_REFCOUNTED(ZEND_OP1_LITERAL(opline))) {
- Z_TYPE_FLAGS(ZEND_OP1_LITERAL(opline)) &= ~ (IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
- }
+ ZVAL_STR(&ZEND_OP1_LITERAL(opline),
zend_new_interned_string(Z_STR(ZEND_OP1_LITERAL(last_op))));
ZVAL_NULL(&ZEND_OP1_LITERAL(last_op));
MAKE_NOP(last_op);
} else if ((opline->opcode == ZEND_CONCAT) &&
@@ -965,10 +962,7 @@ static void zend_optimize_block(zend_code_block *block, zend_op_array
*op_array,
memcpy(Z_STRVAL(ZEND_OP2_LITERAL(src)) + old_len, Z_STRVAL(ZEND_OP2_LITERAL(opline)),
Z_STRLEN(ZEND_OP2_LITERAL(opline)));
Z_STRVAL(ZEND_OP2_LITERAL(src))[l] = '\0';
zend_string_release(Z_STR(ZEND_OP2_LITERAL(opline)));
- Z_STR(ZEND_OP2_LITERAL(opline)) = zend_new_interned_string(Z_STR(ZEND_OP2_LITERAL(src)));
- if (!Z_REFCOUNTED(ZEND_OP2_LITERAL(opline))) {
- Z_TYPE_FLAGS(ZEND_OP2_LITERAL(opline)) &= ~ (IS_TYPE_REFCOUNTED | IS_TYPE_COPYABLE);
- }
+ ZVAL_STR(&ZEND_OP2_LITERAL(opline), zend_new_interned_string(Z_STR(ZEND_OP2_LITERAL(src))));
ZVAL_NULL(&ZEND_OP2_LITERAL(src));
MAKE_NOP(src);
} else if ((opline->opcode == ZEND_ADD ||