summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormsofer <msofer@noemail.net>2010-11-18 00:44:38 (GMT)
committermsofer <msofer@noemail.net>2010-11-18 00:44:38 (GMT)
commitd3dbefca328721539c6baebe31e74b43bb9d55fd (patch)
tree8ed48669bdf57a8b7d4a32779395027d41bbce71
parent5d102d28bff3e6940d771f4ad4d474c98387ae3b (diff)
downloadtcl-d3dbefca328721539c6baebe31e74b43bb9d55fd.zip
tcl-d3dbefca328721539c6baebe31e74b43bb9d55fd.tar.gz
tcl-d3dbefca328721539c6baebe31e74b43bb9d55fd.tar.bz2
* generic/tclNamesp.c: fix leak due to bad looping construct,
[Bug 3111059] (Correct fix this time around) FossilOrigin-Name: 1bc1cdfe72e99801815f2a3dd9a7fbac0a3ac107
-rw-r--r--generic/tclNamesp.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index e6bed55..baed244 100644
--- a/generic/tclNamesp.c
+++ b/generic/tclNamesp.c
@@ -22,7 +22,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclNamesp.c,v 1.215 2010/11/18 00:35:18 msofer Exp $
+ * RCS: @(#) $Id: tclNamesp.c,v 1.216 2010/11/18 00:44:39 msofer Exp $
*/
#include "tclInt.h"
@@ -881,12 +881,14 @@ Tcl_DeleteNamespace(
*/
for (entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search);
- entryPtr != NULL;
- entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search)) {
+ entryPtr != NULL;) {
cmdPtr = (Command *) Tcl_GetHashValue(entryPtr);
if (cmdPtr->nreProc == NRInterpCoroutine) {
Tcl_DeleteCommandFromToken((Tcl_Interp *) iPtr,
(Tcl_Command) cmdPtr);
+ entryPtr = Tcl_FirstHashEntry(&nsPtr->cmdTable, &search);
+ } else {
+ entryPtr = Tcl_NextHashEntry(&search);
}
}