From 61b4d8fa107b0af97b000b85d3475b66022687ad Mon Sep 17 00:00:00 2001 From: Jakub Onderka Date: Tue, 26 Nov 2024 09:30:48 +0100 Subject: [PATCH] Use fast parameter parsing API for PHP methods simdjson_is_valid and simdjson_decode --- php_simdjson.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/php_simdjson.cpp b/php_simdjson.cpp index 021a4cc..c2a543d 100644 --- a/php_simdjson.cpp +++ b/php_simdjson.cpp @@ -123,9 +123,13 @@ static zend_always_inline bool simdjson_validate_depth(zend_long depth, const ch PHP_FUNCTION (simdjson_is_valid) { zend_string *json = NULL; zend_long depth = SIMDJSON_PARSE_DEFAULT_DEPTH; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "S|l", &json, &depth) == FAILURE) { - RETURN_THROWS(); - } + + ZEND_PARSE_PARAMETERS_START(1, 2) + Z_PARAM_STR(json) + Z_PARAM_OPTIONAL + Z_PARAM_LONG(depth) + ZEND_PARSE_PARAMETERS_END(); + if (!simdjson_validate_depth(depth, "simdjson_is_valid", 2)) { RETURN_THROWS(); } @@ -145,9 +149,14 @@ PHP_FUNCTION (simdjson_decode) { zend_bool associative = 0; zend_long depth = SIMDJSON_PARSE_DEFAULT_DEPTH; zend_string *json = NULL; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "S|bl", &json, &associative, &depth) == FAILURE) { - RETURN_THROWS(); - } + + ZEND_PARSE_PARAMETERS_START(1, 3) + Z_PARAM_STR(json) + Z_PARAM_OPTIONAL + Z_PARAM_BOOL(associative) + Z_PARAM_LONG(depth) + ZEND_PARSE_PARAMETERS_END(); + if (!simdjson_validate_depth(depth, "simdjson_decode", 2)) { RETURN_THROWS(); }