From: Thierry FOURNIER Date: Wed, 29 Jan 2014 18:35:16 +0000 (+0100) Subject: MINOR: regex: The pointer regstr in the struc regex is no longer used. X-Git-Tag: v1.5-dev23~89 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b6d15fdc8a27a59b1bc1dd3fc4df140be821f8e;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/include/common/regex.h b/include/common/regex.h index a3d1b5f400..9789ec3c9b 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 43d6e968e6..94b338c3b4 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 64f93c30ec..7a7694050b 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; }