@@ -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,17 @@ PHP_FUNCTION (simdjson_key_exists) {
221224 }
222225}
223226
227+ PHP_FUNCTION (simdjson_cleanup) {
228+ ZEND_PARSE_PARAMETERS_NONE ();
229+
230+ simdjson_php_parser *parser = SIMDJSON_G (parser);
231+ if (EXPECTED (parser != NULL )) {
232+ php_simdjson_free_parser (parser);
233+ SIMDJSON_G (parser) = NULL ;
234+ }
235+ RETURN_TRUE;
236+ }
237+
224238/* {{{ simdjson_functions[]
225239*/
226240zend_function_entry simdjson_functions[] = {
@@ -229,6 +243,7 @@ zend_function_entry simdjson_functions[] = {
229243 PHP_FE (simdjson_key_value, simdjson_key_value_arginfo)
230244 PHP_FE (simdjson_key_exists, simdjson_key_exists_arginfo)
231245 PHP_FE (simdjson_key_count, simdjson_key_count_arginfo)
246+ PHP_FE (simdjson_cleanup, simdjson_cleanup_arginfo)
232247 {NULL , NULL , NULL }
233248};
234249/* }}} */
0 commit comments