diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-07-27 12:24:37 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-07-27 12:27:39 +1000 |
commit | 07919bc624982b7a5ce2ac28975a3c5e39690499 (patch) | |
tree | 3dfa5963f7ed092d5c1f23eea3d70f34b8f53007 /jim-regexp.c | |
parent | 6a1179211ac00a70c9d07ec0b795c479afa2c7de (diff) | |
download | jimtcl-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.c | 6 |
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 == ®expObjType) { - 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 = ®expObjType; objPtr->internalRep.regexpValue.flags = flags; objPtr->internalRep.regexpValue.compre = compre; |