com php-src: Make update_opN_const implementation symme tric: ext/opcache/Optimizer/zend_optimizer.c
| From: | Nikita Popov | Date: | Thu, 10 Dec 2015 17:18:10 +0000 |
| Subject: | com php-src: Make update_opN_const implementation symme tric: ext/opcache/Optimizer/zend_optimizer.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-90206@lists.php.net to get a copy of this message | ||
Commit: 798d168d73985624cfb50e9a86acce7f3446d6fb
Author: Nikita Popov <nikic@php.net> Thu, 10 Dec 2015 18:17:49 +0100
Parents: 37f3425263f5d0f7f8bc8f8f9091efb26384a4f5
Branches: PHP-7.0 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=798d168d73985624cfb50e9a86acce7f3446d6fb
Log:
Make update_opN_const implementation symmetric
So the main structure is the same...
Changed paths:
M ext/opcache/Optimizer/zend_optimizer.c
Diff:
diff --git a/ext/opcache/Optimizer/zend_optimizer.c b/ext/opcache/Optimizer/zend_optimizer.c
index e6cd116..8d13b9f 100644
--- a/ext/opcache/Optimizer/zend_optimizer.c
+++ b/ext/opcache/Optimizer/zend_optimizer.c
@@ -132,6 +132,10 @@ static inline void drop_leading_backslash(zval *val) {
}
}
+static inline void alloc_cache_slots_op1(zend_op_array *op_array, zend_op *opline, uint32_t num) {
+ Z_CACHE_SLOT(op_array->literals[opline->op1.constant]) = op_array->cache_size;
+ op_array->cache_size += num * sizeof(void *);
+}
static inline void alloc_cache_slots_op2(zend_op_array *op_array, zend_op *opline, uint32_t num) {
Z_CACHE_SLOT(op_array->literals[opline->op2.constant]) = op_array->cache_size;
op_array->cache_size += num * sizeof(void *);
@@ -160,19 +164,16 @@ int zend_optimizer_update_op1_const(zend_op_array *op_array,
case ZEND_FREE:
MAKE_NOP(opline);
zval_dtor(val);
- break;
+ return 1;
case ZEND_INIT_STATIC_METHOD_CALL:
case ZEND_CATCH:
case ZEND_FETCH_CONSTANT:
case ZEND_DEFINED:
case ZEND_NEW:
REQUIRES_STRING(val);
- ZEND_OP1_TYPE(opline) = IS_CONST;
drop_leading_backslash(val);
opline->op1.constant = zend_optimizer_add_literal(op_array, val);
- zend_string_hash_val(Z_STR(ZEND_OP1_LITERAL(opline)));
- Z_CACHE_SLOT(op_array->literals[opline->op1.constant]) = op_array->cache_size;
- op_array->cache_size += sizeof(void*);
+ alloc_cache_slots_op1(op_array, opline, 1);
zend_optimizer_add_literal_string(op_array, zend_string_tolower(Z_STR_P(val)));
break;
case ZEND_FETCH_R:
@@ -182,12 +183,9 @@ int zend_optimizer_update_op1_const(zend_op_array *op_array,
case ZEND_FETCH_UNSET:
case ZEND_FETCH_FUNC_ARG:
TO_STRING_NOWARN(val);
- ZEND_OP1_TYPE(opline) = IS_CONST;
opline->op1.constant = zend_optimizer_add_literal(op_array, val);
- zend_string_hash_val(Z_STR(ZEND_OP1_LITERAL(opline)));
if (opline->extended_value == ZEND_FETCH_STATIC_MEMBER) {
- Z_CACHE_SLOT(op_array->literals[opline->op1.constant]) = op_array->cache_size;
- op_array->cache_size += 2 * sizeof(void*);
+ alloc_cache_slots_op1(op_array, opline, 2);
}
break;
case ZEND_CONCAT:
@@ -195,14 +193,14 @@ int zend_optimizer_update_op1_const(zend_op_array *op_array,
TO_STRING_NOWARN(val);
/* break missing intentionally */
default:
- ZEND_OP1_TYPE(opline) = IS_CONST;
opline->op1.constant = zend_optimizer_add_literal(op_array, val);
- if (Z_TYPE_P(val) == IS_STRING) {
- zend_string_hash_val(Z_STR(ZEND_OP1_LITERAL(opline)));
- }
break;
}
+ ZEND_OP1_TYPE(opline) = IS_CONST;
+ if (Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING) {
+ zend_string_hash_val(Z_STR(ZEND_OP1_LITERAL(opline)));
+ }
return 1;
}