From: Dmitry Volyntsev Date: Fri, 29 Sep 2023 02:09:56 +0000 (-0700) Subject: RegExp: improved memory footprint when match fails. X-Git-Tag: 0.8.2~14 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=d296029daa0d95077522da70bd5fa68603ac1a33;p=njs.git RegExp: improved memory footprint when match fails. --- diff --git a/src/njs_regexp.c b/src/njs_regexp.c index 37d95d29..d57b4e5d 100644 --- a/src/njs_regexp.c +++ b/src/njs_regexp.c @@ -941,6 +941,9 @@ njs_regexp_builtin_exec(njs_vm_t *vm, njs_value_t *r, njs_value_t *s, string.size, match_data); if (ret >= 0) { result = njs_regexp_exec_result(vm, r, utf8, &string, match_data); + + njs_regex_match_data_free(match_data, vm->regex_generic_ctx); + if (njs_slow_path(result == NULL)) { return NJS_ERROR; } @@ -949,8 +952,9 @@ njs_regexp_builtin_exec(njs_vm_t *vm, njs_value_t *r, njs_value_t *s, return NJS_OK; } + njs_regex_match_data_free(match_data, vm->regex_generic_ctx); + if (njs_slow_path(ret == NJS_ERROR)) { - njs_regex_match_data_free(match_data, vm->regex_generic_ctx); return NJS_ERROR; } @@ -1154,8 +1158,6 @@ fail: done: - njs_regex_match_data_free(match_data, vm->regex_generic_ctx); - return (ret == NJS_OK) ? array : NULL; }