diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2016-08-23 13:18:51 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2016-08-23 13:18:51 +0300 |
| commit | 7edaed6fba5035ce448ffd14620dd1ee0b2ff945 (patch) | |
| tree | 50d72f2b62aae24ffd42d629d4b52f9455701e76 | |
| parent | 6e7c37228f9f72d4f50e138bfc2666830f0f0aa9 (diff) | |
| parent | 129e8dadf447df7d98a08447bc8c950b7c9209ec (diff) | |
| download | php-git-7edaed6fba5035ce448ffd14620dd1ee0b2ff945.tar.gz | |
Merge branch 'PHP-7.1'
* PHP-7.1:
op_arrays may be optimized independetly and "script" might be NULL
| -rw-r--r-- | ext/opcache/Optimizer/zend_inference.c | 4 | ||||
| -rw-r--r-- | ext/opcache/Optimizer/zend_ssa.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/ext/opcache/Optimizer/zend_inference.c b/ext/opcache/Optimizer/zend_inference.c index 174528f2e1..1e65a2577b 100644 --- a/ext/opcache/Optimizer/zend_inference.c +++ b/ext/opcache/Optimizer/zend_inference.c @@ -2350,7 +2350,7 @@ static inline zend_uchar get_compound_assign_op(zend_uchar opcode) { } static inline zend_class_entry *get_class_entry(const zend_script *script, zend_string *lcname) { - zend_class_entry *ce = zend_hash_find_ptr(&script->class_table, lcname); + zend_class_entry *ce = script ? zend_hash_find_ptr(&script->class_table, lcname) : NULL; if (ce) { return ce; } @@ -2943,7 +2943,7 @@ static void zend_update_type_info(const zend_op_array *op_array, case ZEND_DECLARE_ANON_CLASS: case ZEND_DECLARE_ANON_INHERITED_CLASS: UPDATE_SSA_TYPE(MAY_BE_CLASS, ssa_ops[i].result_def); - if ((ce = zend_hash_find_ptr(&script->class_table, Z_STR_P(CRT_CONSTANT_EX(op_array, opline->op1, ssa->rt_constants)))) != NULL) { + if (script && (ce = zend_hash_find_ptr(&script->class_table, Z_STR_P(CRT_CONSTANT_EX(op_array, opline->op1, ssa->rt_constants)))) != NULL) { UPDATE_SSA_OBJ_TYPE(ce, 0, ssa_ops[i].result_def); } break; diff --git a/ext/opcache/Optimizer/zend_ssa.c b/ext/opcache/Optimizer/zend_ssa.c index 8a115c0fd5..61bc146eb4 100644 --- a/ext/opcache/Optimizer/zend_ssa.c +++ b/ext/opcache/Optimizer/zend_ssa.c @@ -500,7 +500,7 @@ static void place_essa_pis( (opline-1)->op2_type == IS_CONST) { int var = EX_VAR_TO_NUM((opline-1)->op1.var); zend_string *lcname = Z_STR_P(CRT_CONSTANT((opline-1)->op2) + 1); - zend_class_entry *ce = zend_hash_find_ptr(&script->class_table, lcname); + zend_class_entry *ce = script ? zend_hash_find_ptr(&script->class_table, lcname) : NULL; if (!ce) { ce = zend_hash_find_ptr(CG(class_table), lcname); if (!ce || ce->type != ZEND_INTERNAL_CLASS) { |
