diff options
author | dgp <dgp@users.sourceforge.net> | 2007-05-01 20:20:43 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2007-05-01 20:20:43 (GMT) |
commit | 2ac57a490ebcd5bd43e7f03e705a243ce67ffa37 (patch) | |
tree | c0f7a2bd15492655b2c144bcf9fbf2ca1a4a5ddb | |
parent | 7eeb272ffcc4b50b35d956dc99f614cea2821e33 (diff) | |
download | tcl-2ac57a490ebcd5bd43e7f03e705a243ce67ffa37.zip tcl-2ac57a490ebcd5bd43e7f03e705a243ce67ffa37.tar.gz tcl-2ac57a490ebcd5bd43e7f03e705a243ce67ffa37.tar.bz2 |
* generic/tclCmdMZ.c (STR_MAP): When [string map] has a pure dict
map, a missing Tcl_DictObjDone() call led to a memleak. [Bug 1710709]
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | generic/tclCmdMZ.c | 3 |
2 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,8 @@ +2007-05-01 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCmdMZ.c (STR_MAP): When [string map] has a pure dict + map, a missing Tcl_DictObjDone() call led to a memleak. [Bug 1710709] + 2007-04-30 Daniel Steffen <das@users.sourceforge.net> * unix/Makefile.in: add 'tclsh' dependency to install targets that rely @@ -10,7 +15,7 @@ Tcl_Obj's as late as possible, and only when actually needed. [Bug 1705778, leak K29]. -2007-04-30 Kevin B, Kenny <kennykb@acm.org> +2007-04-30 Kevin B. Kenny <kennykb@acm.org> * generic/tclProc.c (Tcl_ProcObjCmd, SetLambdaFromAny): Corrected reference count mismanagement on the name of the source file in diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c index dde42b3..274d8af 100644 --- a/generic/tclCmdMZ.c +++ b/generic/tclCmdMZ.c @@ -15,7 +15,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.149 2007/04/20 05:51:10 kennykb Exp $ + * RCS: @(#) $Id: tclCmdMZ.c,v 1.150 2007/05/01 20:20:44 dgp Exp $ */ #include "tclInt.h" @@ -1887,6 +1887,7 @@ Tcl_StringObjCmd( for (i=2 ; i<mapElemc ; i+=2) { Tcl_DictObjNext(&search, mapElemv+i, mapElemv+i+1, &done); } + Tcl_DictObjDone(&search); } else { if (Tcl_ListObjGetElements(interp, objv[objc-2], &mapElemc, &mapElemv) != TCL_OK) { |