@@ -84,6 +84,9 @@ SIMDJSON_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(simdjson_key_count_arginfo, 0,
8484 ZEND_ARG_TYPE_INFO(0 , throw_if_uncountable, _IS_BOOL, 0 )
8585ZEND_END_ARG_INFO()
8686
87+ SIMDJSON_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(simdjson_cleanup_arginfo, 0 , 0 , _IS_BOOL, 0 )
88+ ZEND_END_ARG_INFO()
89+
8790#define SIMDJSON_G (v ) ZEND_MODULE_GLOBALS_ACCESSOR(simdjson, v)
8891static simdjson_php_parser *simdjson_get_parser () {
8992 simdjson_php_parser *parser = SIMDJSON_G (parser);
@@ -221,6 +224,19 @@ PHP_FUNCTION (simdjson_key_exists) {
221224 }
222225}
223226
227+ PHP_FUNCTION (simdjson_cleanup) {
228+ if (zend_parse_parameters_none () == FAILURE) {
229+ RETURN_THROWS ();
230+ }
231+
232+ simdjson_php_parser *parser = SIMDJSON_G (parser);
233+ if (EXPECTED (parser != NULL )) {
234+ php_simdjson_free_parser (parser);
235+ SIMDJSON_G (parser) = NULL ;
236+ }
237+ RETURN_TRUE;
238+ }
239+
224240/* {{{ simdjson_functions[]
225241*/
226242zend_function_entry simdjson_functions[] = {
@@ -229,6 +245,7 @@ zend_function_entry simdjson_functions[] = {
229245 PHP_FE (simdjson_key_value, simdjson_key_value_arginfo)
230246 PHP_FE (simdjson_key_exists, simdjson_key_exists_arginfo)
231247 PHP_FE (simdjson_key_count, simdjson_key_count_arginfo)
248+ PHP_FE (simdjson_cleanup, simdjson_cleanup_arginfo)
232249 {NULL , NULL , NULL }
233250};
234251/* }}} */
0 commit comments