summaryrefslogtreecommitdiff
path: root/ext/standard/scanf.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/scanf.c')
-rw-r--r--ext/standard/scanf.c32
1 files changed, 13 insertions, 19 deletions
diff --git a/ext/standard/scanf.c b/ext/standard/scanf.c
index 37cce100ce..6c7544004b 100644
--- a/ext/standard/scanf.c
+++ b/ext/standard/scanf.c
@@ -739,9 +739,8 @@ literal:
if (numVars && objIndex >= argCount) {
break;
} else if (numVars) {
- current = Z_REFVAL(args[objIndex++]);
- zval_ptr_dtor(current);
- ZVAL_LONG(current, (zend_long)(string - baseString) );
+ current = args + objIndex++;
+ ZEND_TRY_ASSIGN_LONG(current, (zend_long) (string - baseString));
} else {
add_index_long(return_value, objIndex++, string - baseString);
}
@@ -858,9 +857,8 @@ literal:
if (numVars && objIndex >= argCount) {
break;
} else if (numVars) {
- current = Z_REFVAL(args[objIndex++]);
- zval_ptr_dtor(current);
- ZVAL_STRINGL(current, string, end-string);
+ current = args + objIndex++;
+ ZEND_TRY_ASSIGN_STRINGL(current, string, end - string);
} else {
add_index_stringl(return_value, objIndex++, string, end-string);
}
@@ -899,9 +897,8 @@ literal:
if (numVars && objIndex >= argCount) {
break;
} else if (numVars) {
- current = Z_REFVAL(args[objIndex++]);
- zval_ptr_dtor(current);
- ZVAL_STRINGL(current, string, end-string);
+ current = args + objIndex++;
+ ZEND_TRY_ASSIGN_STRINGL(current, string, end - string);
} else {
add_index_stringl(return_value, objIndex++, string, end-string);
}
@@ -1052,10 +1049,9 @@ addToInt:
if (numVars && objIndex >= argCount) {
break;
} else if (numVars) {
- /* change passed value type to string */
- current = Z_REFVAL(args[objIndex++]);
- zval_ptr_dtor(current);
- ZVAL_STRING(current, buf);
+ /* change passed value type to string */
+ current = args + objIndex++;
+ ZEND_TRY_ASSIGN_STRING(current, buf);
} else {
add_index_string(return_value, objIndex++, buf);
}
@@ -1063,9 +1059,8 @@ addToInt:
if (numVars && objIndex >= argCount) {
break;
} else if (numVars) {
- current = Z_REFVAL(args[objIndex++]);
- zval_ptr_dtor(current);
- ZVAL_LONG(current, value);
+ current = args + objIndex++;
+ ZEND_TRY_ASSIGN_LONG(current, value);
} else {
add_index_long(return_value, objIndex++, value);
}
@@ -1168,9 +1163,8 @@ addToFloat:
if (numVars && objIndex >= argCount) {
break;
} else if (numVars) {
- current = Z_REFVAL(args[objIndex++]);
- zval_ptr_dtor(current);
- ZVAL_DOUBLE(current, dvalue);
+ current = args + objIndex++;
+ ZEND_TRY_ASSIGN_DOUBLE(current, dvalue);
} else {
add_index_double(return_value, objIndex++, dvalue );
}