summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
authorGeorge Peter Banyard <girgias@php.net>2020-04-24 15:35:03 +0200
committerGeorge Peter Banyard <girgias@php.net>2020-05-02 19:50:51 +0200
commit7b74fc7a7b23d783b501a21e306d31234432c238 (patch)
tree3e997924bd260b1a3ee13b3e3de27381718ea3fc /Zend/zend_API.c
parent5a628402a0a9740b5e988e79b008696ccfb73329 (diff)
downloadphp-git-7b74fc7a7b23d783b501a21e306d31234432c238.tar.gz
Add Fast ZPP string|int type check
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index d2fb08d2d9..3670557d0d 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -506,6 +506,23 @@ ZEND_API int ZEND_FASTCALL zend_parse_arg_str_slow(zval *arg, zend_string **dest
}
/* }}} */
+ZEND_API int ZEND_FASTCALL zend_parse_arg_str_or_long_slow(zval *arg, zend_string **dest_str, zend_long *dest_long) /* {{{ */
+{
+ if (UNEXPECTED(ZEND_ARG_USES_STRICT_TYPES())) {
+ return 0;
+ }
+ if (zend_parse_arg_long_weak(arg, dest_long)) {
+ *dest_str = NULL;
+ return 1;
+ } else if (zend_parse_arg_str_weak(arg, dest_str)) {
+ *dest_long = 0;
+ return 1;
+ } else {
+ return 0;
+ }
+}
+/* }}} */
+
static const char *zend_parse_arg_impl(int arg_num, zval *arg, va_list *va, const char **spec, char **error) /* {{{ */
{
const char *spec_walk = *spec;