summaryrefslogtreecommitdiff
path: root/ext/standard/scanf.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-01-07 12:28:51 +0100
committerNikita Popov <nikita.ppv@gmail.com>2019-01-11 15:49:06 +0100
commite219ec144ef6682b71e135fd18654ee1bb4676b4 (patch)
treee4a3ae2b619cdc9fe50ee8e1fa5adb99d804dddf /ext/standard/scanf.c
parentfe8fdfa3bd588d80ce60f6b3848058239e0a760f (diff)
downloadphp-git-e219ec144ef6682b71e135fd18654ee1bb4676b4.tar.gz
Implement typed properties
RFC: https://wiki.php.net/rfc/typed_properties_v2 This is a squash of PR #3734, which is a squash of PR #3313. Co-authored-by: Bob Weinand <bobwei9@hotmail.com> Co-authored-by: Joe Watkins <krakjoe@php.net> Co-authored-by: Dmitry Stogov <dmitry@zend.com>
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 );
}