BUG: in wordRe::operator=(const keyType&)

- the regex was not being unset on assignment.
- drop unused recompile() method as being dubious
This commit is contained in:
Mark Olesen
2017-03-10 13:05:35 +01:00
parent b3bfdd0bb8
commit 215349aa69
3 changed files with 8 additions and 18 deletions

View File

@ -75,8 +75,8 @@ int main(int argc, char *argv[])
wre.info(Info) << " after DETECT" << endl;
wre.uncompile();
wre.info(Info) << " uncompiled" << endl;
wre.recompile();
wre.info(Info) << " recompiled" << endl;
wre.compile();
wre.info(Info) << " re-compiled" << endl;
wre.set("something .* value", wordRe::LITERAL);
wre.info(Info) << " set as LITERAL" << endl;

View File

@ -39,8 +39,8 @@ Description
Note
If the string contents are changed - eg, by the operator+=() or by
string::replace(), etc - it will be necessary to use compile() or
recompile() to synchronize the regular expression.
string::replace(), etc - it will be necessary to use compile() to
synchronize the regular expression.
SourceFiles
wordRe.C
@ -161,9 +161,6 @@ public:
//- Possibly compile the regular expression, with greater control
inline bool compile(const compOption) const;
//- Recompile an existing regular expression
inline bool recompile() const;
//- Frees precompiled regular expression, making wordRe a literal.
// Optionally strips invalid word characters
inline void uncompile(const bool doStripInvalid = false) const;

View File

@ -165,17 +165,6 @@ inline bool Foam::wordRe::compile() const
}
inline bool Foam::wordRe::recompile() const
{
if (re_.exists())
{
re_ = *this;
}
return re_.exists();
}
inline void Foam::wordRe::uncompile(const bool doStripInvalid) const
{
if (re_.clear())
@ -265,6 +254,10 @@ inline void Foam::wordRe::operator=(const keyType& str)
{
compile();
}
else
{
re_.clear();
}
}