/* * Copyright (C) 1996-2023 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. * Please see the COPYING and CONTRIBUTORS files for details. */ #include "squid.h" #include "base/RegexPattern.h" #include RegexPattern::RegexPattern(int aFlags, const char *aPattern) : flags(aFlags), pattern(xstrdup(aPattern)) { memset(®ex, 0, sizeof(regex)); } RegexPattern::RegexPattern(RegexPattern &&o) : flags(std::move(o.flags)), regex(std::move(o.regex)), pattern(std::move(o.pattern)) { memset(&o.regex, 0, sizeof(o.regex)); o.pattern = nullptr; } RegexPattern::~RegexPattern() { xfree(pattern); regfree(®ex); } RegexPattern & RegexPattern::operator =(RegexPattern &&o) { flags = std::move(o.flags); regex = std::move(o.regex); memset(&o.regex, 0, sizeof(o.regex)); pattern = std::move(o.pattern); o.pattern = nullptr; return *this; }