summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandreas_kupries <akupries@shaw.ca>2008-07-28 21:06:07 (GMT)
committerandreas_kupries <akupries@shaw.ca>2008-07-28 21:06:07 (GMT)
commit8f13bd76fede30fc0ad2cce6aa00582ec5eecd70 (patch)
tree1bff7a81898decb4cc220c44edada8cef2074b59
parent9eee73cf65297a361965729c5e4a692932dba00a (diff)
downloadtcl-8f13bd76fede30fc0ad2cce6aa00582ec5eecd70.zip
tcl-8f13bd76fede30fc0ad2cce6aa00582ec5eecd70.tar.gz
tcl-8f13bd76fede30fc0ad2cce6aa00582ec5eecd70.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 ca5ac5b..41d5930 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-27 Donal K. Fellows <dkf@users.sf.net>
* generic/tclOOMethod.c (PushMethodCallFrame): Remove hack that should
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index eb5e1c8..87a36b3 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -16,7 +16,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.331 2008/07/25 22:11:19 andreas_kupries Exp $
+ * RCS: @(#) $Id: tclBasic.c,v 1.332 2008/07/28 21:06:09 andreas_kupries Exp $
*/
#include "tclInt.h"
@@ -4923,10 +4923,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.