#include "mem/forward.h"
+#include <regex>
+
/// list of regular expressions.
class RegexList
{
RegexList() = delete;
RegexList(int aFlags, const char *aPattern) : flags(aFlags), pattern(xstrdup(aPattern)), next(nullptr) {}
RegexList(const RegexList &) = delete;
- RegexList(const RegexList &&) = delete;
- ~RegexList() {xfree(pattern); regfree(®ex); delete next;}
+ RegexList(const RegexList && o) = delete;
+ ~RegexList();
int flags;
char *pattern;
#include "RegexList.h"
#include "wordlist.h"
-static void
-aclDestroyRegexList(RegexList * data)
-{
- RegexList *next = NULL;
-
- for (; data; data = next) {
- next = data->next;
- delete data;
- }
-}
-
ACLRegexData::~ACLRegexData()
{
- aclDestroyRegexList(data);
+ delete data;
}
bool
debugs(28, 2, "compileOptimisedREs: -i" );
newlistp = compileRE( newlistp, largeRE, flags );
if (newlistp == NULL) {
- aclDestroyRegexList( newlist );
+ delete newlist;
return 0;
}
flags |= REG_ICASE;
debugs(28, 2, "compileOptimisedREs: +i");
newlistp = compileRE( newlistp, largeRE, flags );
if (newlistp == NULL) {
- aclDestroyRegexList( newlist );
+ delete newlist;
return 0;
}
flags &= ~REG_ICASE;
debugs(28, 2, "compileOptimisedREs: buffer full, generating new optimised RE..." );
newlistp = compileRE( newlistp, largeRE, flags );
if (newlistp == NULL) {
- aclDestroyRegexList( newlist );
+ delete newlist;
return 0;
}
largeRE[largeREindex=0] = '\0';
newlistp = compileRE( newlistp, largeRE, flags );
if (newlistp == NULL) {
- aclDestroyRegexList( newlist );
+ delete newlist;
return 0;
}