fixes #11139 (re.nim memory leak) (#11265)

Use the same PCRE function for freeing up the memory as nre.nim does.
This commit is contained in:
Miran 2019-05-16 21:06:31 +02:00 • committed by Andreas Rumpf
commit 9d4190a5cc
2 changed files with 1 additions and 2 deletions

View file

@ -440,7 +440,6 @@ proc extractOptions(pattern: string): tuple[pattern: string, flags: int, study:
proc destroyRegex(pattern: Regex) = proc destroyRegex(pattern: Regex) =
pcre.free_substring(cast[cstring](pattern.pcreObj)) pcre.free_substring(cast[cstring](pattern.pcreObj))
pattern.pcreObj = nil
if pattern.pcreExtra != nil: if pattern.pcreExtra != nil:
pcre.free_study(pattern.pcreExtra) pcre.free_study(pattern.pcreExtra)

View file

@ -65,7 +65,7 @@ proc finalizeRegEx(x: Regex) =
# Fortunately the implementation is unlikely to change. # Fortunately the implementation is unlikely to change.
pcre.free_substring(cast[cstring](x.h)) pcre.free_substring(cast[cstring](x.h))
if not isNil(x.e): if not isNil(x.e):
pcre.free_substring(cast[cstring](x.e)) pcre.free_study(x.e)
proc re*(s: string, flags = {reStudy}): Regex = proc re*(s: string, flags = {reStudy}): Regex =
## Constructor of regular expressions. ## Constructor of regular expressions.