summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandreas_kupries <akupries@shaw.ca>2008-07-28 20:45:15 (GMT)
committerandreas_kupries <akupries@shaw.ca>2008-07-28 20:45:15 (GMT)
commit10ea20bb785acaeb65668000042284010fd63a70 (patch)
tree072265cf86e088a97bcfeba3fb8fd072fd3bbd91
parent2931e2c849579bfd59bac1989e2051b22c2d4224 (diff)
downloadtcl-10ea20bb785acaeb65668000042284010fd63a70.zip
tcl-10ea20bb785acaeb65668000042284010fd63a70.tar.gz
tcl-10ea20bb785acaeb65668000042284010fd63a70.tar.bz2
* generic/tclBasic.c: Added missing ref count when creating an
empty string as path (TclEvalEx). In 8.4 the missing code caused panics in the testsuite. It doesn't in 8.5. I am guessing that the code path with the missing the incr-refcount is not invoked any longer. Because the bug in itself is certainly the same.
-rw-r--r--ChangeLog8
-rw-r--r--generic/tclBasic.c4
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index a022568..b7c0484 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-07-28 Andreas Kupries <andreask@activestate.com>
+
+ * generic/tclBasic.c: Added missing ref count when creating an
+ empty string as path (TclEvalEx). In 8.4 the missing code caused
+ panics in the testsuite. It doesn't in 8.5. I am guessing that the
+ code path with the missing the incr-refcount is not invoked any
+ longer. Because the bug in itself is certainly the same.
+
2008-07-25 Daniel Steffen <das@users.sourceforge.net>
* tests/info.test (info-37.0): Add !singleTestInterp constraint;
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 9afb5e7..0c0fbda 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.295.2.6 2008/07/28 14:44:17 dgp Exp $
+ * RCS: @(#) $Id: tclBasic.c,v 1.295.2.7 2008/07/28 20:45:15 andreas_kupries Exp $
*/
#include "tclInt.h"
@@ -4148,10 +4148,10 @@ TclEvalEx(
goto error;
}
eeFramePtr->data.eval.path = norm;
- Tcl_IncrRefCount(eeFramePtr->data.eval.path);
} else {
TclNewLiteralStringObj(eeFramePtr->data.eval.path, "");
}
+ Tcl_IncrRefCount(eeFramePtr->data.eval.path);
} else {
/*
* Set up for plain eval.