diff options
| author | hobbs <hobbs> | 2002-03-01 06:23:08 (GMT) |
|---|---|---|
| committer | hobbs <hobbs> | 2002-03-01 06:23:08 (GMT) |
| commit | 0973b05c2e41f37bc00a3016e75b732819d45bcd (patch) | |
| tree | b49a7122077d01671b7ea1253acf1671f78d4626 /generic/tclCmdMZ.c | |
| parent | a22cac1b8a5522f0140abb4110517f47c168d274 (diff) | |
| download | tcl-0973b05c2e41f37bc00a3016e75b732819d45bcd.zip tcl-0973b05c2e41f37bc00a3016e75b732819d45bcd.tar.gz tcl-0973b05c2e41f37bc00a3016e75b732819d45bcd.tar.bz2 | |
* generic/tclCmdMZ.c (TraceCommandProc): ensure that TraceCommandInfo
structure was also deleted when a command was deleted to prevent a
mem leak.
Diffstat (limited to 'generic/tclCmdMZ.c')
| -rw-r--r-- | generic/tclCmdMZ.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c index d78e29c..ef96e0c 100644 --- a/generic/tclCmdMZ.c +++ b/generic/tclCmdMZ.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: tclCmdMZ.c,v 1.62 2002/02/27 06:39:26 hobbs Exp $ + * RCS: @(#) $Id: tclCmdMZ.c,v 1.63 2002/03/01 06:23:08 hobbs Exp $ */ #include "tclInt.h" @@ -3688,7 +3688,11 @@ TraceCommandProc(clientData, interp, oldName, newName, flags) Tcl_DStringFree(&cmd); } - if (flags & TCL_TRACE_DESTROYED) { + /* + * We delete when the trace was destroyed or if this is a delete trace, + * because command deletes are unconditional, so the trace must go away. + */ + if (flags & (TCL_TRACE_DESTROYED | TCL_TRACE_DELETE)) { ckfree((char *) tcmdPtr); } return; |
