summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/opcache/Optimizer/zend_optimizer.c4
-rw-r--r--ext/spl/spl_engine.c6
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);