MINOR: regex: The pointer regstr in the struc regex is no longer used.
The pointer <regstr> 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 a3d1b5f..9789ec3 100644
--- a/include/common/regex.h
+++ b/include/common/regex.h
@@ -47,7 +47,6 @@
#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 @@
#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 43d6e96..94b338c 100644
--- a/src/pattern.c
+++ b/src/pattern.c
@@ -231,8 +231,7 @@
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 @@
}
/* 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 64f93c3..7a76940 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -124,13 +124,6 @@
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 @@
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 @@
flags |= REG_NOSUB;
if (regcomp(®ex->regex, str, flags) != 0) {
- free(regex->regstr);
memprintf(err, "regex '%s' is invalid", str);
return 0;
}