diff options
author | George Peter Banyard <girgias@php.net> | 2020-04-24 15:35:03 +0200 |
---|---|---|
committer | George Peter Banyard <girgias@php.net> | 2020-05-02 19:50:51 +0200 |
commit | 7b74fc7a7b23d783b501a21e306d31234432c238 (patch) | |
tree | 3e997924bd260b1a3ee13b3e3de27381718ea3fc /Zend/zend_API.c | |
parent | 5a628402a0a9740b5e988e79b008696ccfb73329 (diff) | |
download | php-git-7b74fc7a7b23d783b501a21e306d31234432c238.tar.gz |
Add Fast ZPP string|int type check
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r-- | Zend/zend_API.c | 17 |
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; |