diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/opcache/Optimizer/zend_optimizer.c | 4 | ||||
| -rw-r--r-- | ext/spl/spl_engine.c | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/ext/opcache/Optimizer/zend_optimizer.c b/ext/opcache/Optimizer/zend_optimizer.c index 0c68cc14d5..657a3f4b52 100644 --- a/ext/opcache/Optimizer/zend_optimizer.c +++ b/ext/opcache/Optimizer/zend_optimizer.c @@ -297,10 +297,8 @@ static void update_op2_const(zend_op_array *op_array, check_numeric: { ulong index; - int numeric = 0; - ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(val), Z_STRLEN_P(val)+1, index, numeric = 1); - if (numeric) { + if (ZEND_HANDLE_NUMERIC(Z_STR_P(val), index)) { zval_dtor(val); ZVAL_LONG(val, index); op_array->literals[opline->op2.constant] = *val; diff --git a/ext/spl/spl_engine.c b/ext/spl/spl_engine.c index a2f3653432..0cfcb8ee18 100644 --- a/ext/spl/spl_engine.c +++ b/ext/spl/spl_engine.c @@ -42,9 +42,13 @@ PHPAPI void spl_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC) PHPAPI long spl_offset_convert_to_long(zval *offset TSRMLS_DC) /* {{{ */ { + ulong idx; + switch (Z_TYPE_P(offset)) { case IS_STRING: - ZEND_HANDLE_NUMERIC(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, idx); + if (ZEND_HANDLE_NUMERIC(Z_STR_P(offset), idx)) { + return idx; + } break; case IS_DOUBLE: return (long)Z_DVAL_P(offset); |
