From: Quentin Deslandes Date: Tue, 13 Sep 2022 15:14:52 +0000 (+0100) Subject: Create hash_ops structure to free keys of type pcre2_code X-Git-Tag: v253-rc1~270^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b8c0565ec4d9c8b2eff7a0799cfdabf66536a87c;p=thirdparty%2Fsystemd.git Create hash_ops structure to free keys of type pcre2_code --- diff --git a/src/shared/pcre2-util.c b/src/shared/pcre2-util.c index 998dab04910..a2c8687cf90 100644 --- a/src/shared/pcre2-util.c +++ b/src/shared/pcre2-util.c @@ -14,6 +14,15 @@ pcre2_code* (*sym_pcre2_compile)(PCRE2_SPTR, PCRE2_SIZE, uint32_t, int *, PCRE2_ int (*sym_pcre2_get_error_message)(int, PCRE2_UCHAR *, PCRE2_SIZE); int (*sym_pcre2_match)(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, uint32_t, pcre2_match_data *, pcre2_match_context *); PCRE2_SIZE* (*sym_pcre2_get_ovector_pointer)(pcre2_match_data *); + +DEFINE_HASH_OPS_WITH_KEY_DESTRUCTOR( + pcre2_code_hash_ops_free, + pcre2_code, + (void (*)(const pcre2_code *, struct siphash*))trivial_hash_func, + (int (*)(const pcre2_code *, const pcre2_code*))trivial_compare_func, + sym_pcre2_code_free); +#else +const struct hash_ops pcre2_code_hash_ops_free = {}; #endif int dlopen_pcre2(void) { diff --git a/src/shared/pcre2-util.h b/src/shared/pcre2-util.h index 11f1d77f4f2..f1e744d5774 100644 --- a/src/shared/pcre2-util.h +++ b/src/shared/pcre2-util.h @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once +#include "hash-funcs.h" #include "macro.h" #if HAVE_PCRE2 @@ -24,6 +25,8 @@ typedef struct {} pcre2_code; #endif +extern const struct hash_ops pcre2_code_hash_ops_free; + typedef enum { PATTERN_COMPILE_CASE_AUTO, PATTERN_COMPILE_CASE_SENSITIVE,