@@ -84,6 +84,9 @@ SIMDJSON_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(simdjson_key_count_arginfo, 0,
84
84
ZEND_ARG_TYPE_INFO(0 , throw_if_uncountable, _IS_BOOL, 0 )
85
85
ZEND_END_ARG_INFO()
86
86
87
+ SIMDJSON_ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(simdjson_cleanup_arginfo, 0 , 0 , _IS_BOOL, 0 )
88
+ ZEND_END_ARG_INFO()
89
+
87
90
#define SIMDJSON_G (v ) ZEND_MODULE_GLOBALS_ACCESSOR(simdjson, v)
88
91
static simdjson_php_parser *simdjson_get_parser () {
89
92
simdjson_php_parser *parser = SIMDJSON_G (parser);
@@ -221,6 +224,19 @@ PHP_FUNCTION (simdjson_key_exists) {
221
224
}
222
225
}
223
226
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
+
224
240
/* {{{ simdjson_functions[]
225
241
*/
226
242
zend_function_entry simdjson_functions[] = {
@@ -229,6 +245,7 @@ zend_function_entry simdjson_functions[] = {
229
245
PHP_FE (simdjson_key_value, simdjson_key_value_arginfo)
230
246
PHP_FE (simdjson_key_exists, simdjson_key_exists_arginfo)
231
247
PHP_FE (simdjson_key_count, simdjson_key_count_arginfo)
248
+ PHP_FE (simdjson_cleanup, simdjson_cleanup_arginfo)
232
249
{NULL , NULL , NULL }
233
250
};
234
251
/* }}} */
0 commit comments