aboutsummaryrefslogtreecommitdiff
path: root/jim-regexp.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-07-27 12:24:37 +1000
committerSteve Bennett <steveb@workware.net.au>2011-07-27 12:27:39 +1000
commit07919bc624982b7a5ce2ac28975a3c5e39690499 (patch)
tree3dfa5963f7ed092d5c1f23eea3d70f34b8f53007 /jim-regexp.c
parent6a1179211ac00a70c9d07ec0b795c479afa2c7de (diff)
downloadjimtcl-07919bc624982b7a5ce2ac28975a3c5e39690499.zip
jimtcl-07919bc624982b7a5ce2ac28975a3c5e39690499.tar.gz
jimtcl-07919bc624982b7a5ce2ac28975a3c5e39690499.tar.bz2
Fix object leak in regexp/regsub
During internal rep change to regex Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-regexp.c')
-rw-r--r--jim-regexp.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/jim-regexp.c b/jim-regexp.c
index 702fdfe..8e497a2 100644
--- a/jim-regexp.c
+++ b/jim-regexp.c
@@ -80,10 +80,6 @@ static regex_t *SetRegexpFromAny(Jim_Interp *interp, Jim_Obj *objPtr, unsigned f
}
/* Not a regexp or the flags do not match */
- if (objPtr->typePtr == &regexpObjType) {
- FreeRegexpInternalRep(interp, objPtr);
- objPtr->typePtr = NULL;
- }
/* Get the string representation */
pattern = Jim_String(objPtr);
@@ -99,6 +95,8 @@ static regex_t *SetRegexpFromAny(Jim_Interp *interp, Jim_Obj *objPtr, unsigned f
return NULL;
}
+ Jim_FreeIntRep(interp, objPtr);
+
objPtr->typePtr = &regexpObjType;
objPtr->internalRep.regexpValue.flags = flags;
objPtr->internalRep.regexpValue.compre = compre;