From 78dd3b3955f6c2f710b83b1cbdde2aa96be2aecb Mon Sep 17 00:00:00 2001 From: dgp Date: Wed, 28 Oct 2009 21:03:19 +0000 Subject: * generic/tclLiteral.c: Fixed 2 bugs reported in [Bug 2888044]. * tests/info.test: First, as noted in the comments of the TclCleanupLiteralTable routine, since the teardown of the intrep of one Tcl_Obj can cause the teardown of others in the same table, the full table cleanup must be done with care, but the code did not contain the same care demanded in the comment. Second, recent additions to the info.test file had poor hygiene, leaving an array variable ::a lying around, which breaks later interp.test tests during a -singleproc 1 run of the test suite. --- ChangeLog | 12 ++++++++++++ generic/tclLiteral.c | 3 ++- tests/info.test | 3 ++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index cabe9f4..e548e4a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2009-10-28 Don Porter + + * generic/tclLiteral.c: Fixed 2 bugs reported in [Bug 2888044]. + * tests/info.test: First, as noted in the comments of the + TclCleanupLiteralTable routine, since the teardown of the intrep + of one Tcl_Obj can cause the teardown of others in the same table, + the full table cleanup must be done with care, but the code did not + contain the same care demanded in the comment. Second, recent + additions to the info.test file had poor hygiene, leaving an array + variable ::a lying around, which breaks later interp.test tests during + a -singleproc 1 run of the test suite. + 2009-10-28 Kevin B. Kenny * tests/fileName.test (fileName-20.[78]): Corrected poor test diff --git a/generic/tclLiteral.c b/generic/tclLiteral.c index 5d4974a..10a18f8 100644 --- a/generic/tclLiteral.c +++ b/generic/tclLiteral.c @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclLiteral.c,v 1.36 2009/07/22 12:00:42 nijtmans Exp $ + * RCS: @(#) $Id: tclLiteral.c,v 1.37 2009/10/28 21:03:19 dgp Exp $ */ #include "tclInt.h" @@ -136,6 +136,7 @@ TclCleanupLiteralTable( objPtr->typePtr = NULL; typePtr->freeIntRepProc(objPtr); didOne = 1; + break; } else { entryPtr = nextPtr; } diff --git a/tests/info.test b/tests/info.test index 24c966a..f983a0c 100644 --- a/tests/info.test +++ b/tests/info.test @@ -13,7 +13,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: info.test,v 1.67 2009/09/07 19:59:59 dgp Exp $ +# RCS: @(#) $Id: info.test,v 1.68 2009/10/28 21:03:19 dgp Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest 2 @@ -1822,6 +1822,7 @@ test info-30.47 {TIP 280 for compiled [subst]} { subst {$a( [dict get [info frame 0] line])} ; # 1823 } YES +unset -nocomplain a test info-30.48 {Bug 2850901} testevalex { testevalex {return -level 0 [format %s {} -- cgit v0.12