From 0b6d15fdc8a27a59b1bc1dd3fc4df140be821f8e Mon Sep 17 00:00:00 2001 From: Thierry FOURNIER Date: Wed, 29 Jan 2014 19:35:16 +0100 Subject: [PATCH] MINOR: regex: The pointer regstr in the struc regex is no longer used. The pointer is only used to compare and identify the original regex string with the patterns. Now the patterns have a reference map containing this original string. It is useless to store this value two times. --- include/common/regex.h | 3 --- src/pattern.c | 5 ++--- src/regex.c | 10 ---------- 3 files changed, 2 insertions(+), 16 deletions(-) diff --git a/include/common/regex.h b/include/common/regex.h index a3d1b5f40..9789ec3c9 100644 --- a/include/common/regex.h +++ b/include/common/regex.h @@ -47,7 +47,6 @@ struct my_regex { #else /* no PCRE */ regex_t regex; #endif - char *regstr; /* this contain the original string */ }; /* what to do when a header matches a regex */ @@ -109,8 +108,6 @@ static inline void regex_free(struct my_regex *preg) { #else regfree(&preg->regex); #endif - free(preg->regstr); - preg->regstr = NULL; } #endif /* _COMMON_REGEX_H */ diff --git a/src/pattern.c b/src/pattern.c index 43d6e968e..94b338c3b 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -231,8 +231,7 @@ int pat_parse_reg(const char *text, struct pattern *pattern, char **err) return 0; } - pattern->ptr.reg = (struct my_regex *)trash->str; - pattern->ptr.reg->regstr = (char *)text; + pattern->ptr.str = (char *)text; return 1; } @@ -1037,7 +1036,7 @@ int pat_idx_list_reg(struct pattern_expr *expr, struct pattern *pat, char **err) } /* compile regex */ - if (!regex_comp(pat->ptr.reg->regstr, patl->pat.ptr.reg, !(patl->pat.flags & PAT_F_IGNORE_CASE), 0, err)) { + if (!regex_comp(pat->ptr.str, patl->pat.ptr.reg, !(patl->pat.flags & PAT_F_IGNORE_CASE), 0, err)) { free(patl); free(patl->pat.ptr.reg); return 0; diff --git a/src/regex.c b/src/regex.c index 64f93c30e..7a7694050 100644 --- a/src/regex.c +++ b/src/regex.c @@ -124,13 +124,6 @@ const char *chain_regex(struct hdr_exp **head, const regex_t *preg, int regex_comp(const char *str, struct my_regex *regex, int cs, int cap, char **err) { - /* copy the original regex format */ - regex->regstr = strdup(str); - if (!regex->regstr) { - memprintf(err, "out of memory"); - return 0; - } - #ifdef USE_PCRE_JIT int flags = 0; const char *error; @@ -143,14 +136,12 @@ int regex_comp(const char *str, struct my_regex *regex, int cs, int cap, char ** regex->reg = pcre_compile(str, flags, &error, &erroffset, NULL); if (!regex->reg) { - free(regex->regstr); memprintf(err, "regex '%s' is invalid (error=%s, erroffset=%d)", str, error, erroffset); return 0; } regex->extra = pcre_study(regex->reg, PCRE_STUDY_JIT_COMPILE, &error); if (!regex->extra) { - free(regex->regstr); pcre_free(regex->reg); memprintf(err, "failed to compile regex '%s' (error=%s)", str, error); return 0; @@ -164,7 +155,6 @@ int regex_comp(const char *str, struct my_regex *regex, int cs, int cap, char ** flags |= REG_NOSUB; if (regcomp(®ex->regex, str, flags) != 0) { - free(regex->regstr); memprintf(err, "regex '%s' is invalid", str); return 0; }