diff options
author | dgp <dgp@users.sourceforge.net> | 2008-02-28 22:36:36 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2008-02-28 22:36:36 (GMT) |
commit | c08d157ff67d885fef923e525d7a48dc9a2094f4 (patch) | |
tree | 25ed0b70b345dd0d4c003553da12796a1c283309 /generic | |
parent | 4890692476327e5f6e5785303d7e4c7b69951773 (diff) | |
download | tcl-c08d157ff67d885fef923e525d7a48dc9a2094f4.zip tcl-c08d157ff67d885fef923e525d7a48dc9a2094f4.tar.gz tcl-c08d157ff67d885fef923e525d7a48dc9a2094f4.tar.bz2 |
* generic/tclBasic.c (TclEvalObjvInternal): Plug memory leak when
an enter trace deletes or changes the command, prompting a reparsing.
Don't let the second pass lose commandPtr value allocated during the
first pass.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclBasic.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 35c6bb9..f825fdb 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -14,7 +14,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclBasic.c,v 1.291 2008/01/23 21:21:26 dgp Exp $ + * RCS: @(#) $Id: tclBasic.c,v 1.292 2008/02/28 22:36:37 dgp Exp $ */ #include "tclInt.h" @@ -3609,6 +3609,9 @@ TclEvalObjvInternal( if (cmdEpoch != newEpoch) { checkTraces = 0; + if (commandPtr) { + Tcl_DecrRefCount(commandPtr); + } goto reparseBecauseOfTraces; } } |