summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorferrieux <ferrieux@users.sourceforge.net>2010-05-31 22:58:56 (GMT)
committerferrieux <ferrieux@users.sourceforge.net>2010-05-31 22:58:56 (GMT)
commit085647e065d5d19e1b3e8124cb42424cdd9821c8 (patch)
treee84ac848a1e1ffcffa2d829a33cfaa2ca066dbb2
parent67dc34a79def67d6d61add7f0635c45806fc7a50 (diff)
downloadtcl-085647e065d5d19e1b3e8124cb42424cdd9821c8.zip
tcl-085647e065d5d19e1b3e8124cb42424cdd9821c8.tar.gz
tcl-085647e065d5d19e1b3e8124cb42424cdd9821c8.tar.bz2
Fix computation of [uplevel] offsets in TIP 341.
Only depend on callerPtr chaining now. Needed for upcoming coro patch.
-rw-r--r--ChangeLog6
-rw-r--r--generic/tclNamesp.c4
-rw-r--r--tests/error.test8
-rw-r--r--tests/result.test4
4 files changed, 14 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 455d15c..429bc35 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-06-101 Alexandre Ferrieux <ferrieux@users.sourceforge.net>
+
+ * generic/tclNamesp.c: Fix computation of [uplevel] offsets in TIP 341.
+ * tests/error.test: Only depend on callerPtr chaining now.
+ * tests/result.test: Needed for upcoming coro patch.
+
2010-05-31 Jan Nijtmans <nijtmans@users.sf.net>
* generic/tclVar.c Eliminate some casts to (Tcl_HashTable *)
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index 41032d1..bf91bc7 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.205 2010/04/05 19:44:45 ferrieux Exp $
+ * RCS: @(#) $Id: tclNamesp.c,v 1.206 2010/05/31 22:58:56 ferrieux Exp $
*/
#include "tclInt.h"
@@ -4961,7 +4961,7 @@ Tcl_LogCommandInfo(
for (n=0, frame=iPtr->framePtr;
(frame && (frame != iPtr->varFramePtr));
- n++, frame=frame->callerVarPtr);
+ n++, frame=frame->callerPtr);
Tcl_ListObjAppendElement(NULL, iPtr->errorStack, iPtr->upLiteral);
Tcl_ListObjAppendElement(NULL, iPtr->errorStack, Tcl_NewIntObj(n));
} else if (iPtr->framePtr != iPtr->rootFramePtr) {
diff --git a/tests/error.test b/tests/error.test
index 1aab474..515d064 100644
--- a/tests/error.test
+++ b/tests/error.test
@@ -11,7 +11,7 @@
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: error.test,v 1.31 2010/05/28 09:11:32 dkf Exp $
+# RCS: @(#) $Id: error.test,v 1.32 2010/05/31 22:58:56 ferrieux Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest 2
@@ -174,13 +174,13 @@ test error-4.6 {errorstack via info } -body {
proc g x {error G:$x}
catch {f 12}
info errorstack
-} -match glob -result {CALL {g 1212} CALL {f 12} UP 1}
+} -match glob -result {CALL {g 1212} CALL {f 12} UP 3}
test error-4.7 {errorstack via options dict } -body {
proc f x {g $x$x}
proc g x {error G:$x}
catch {f 12} m d
dict get $d -errorstack
-} -match glob -result {CALL {g 1212} CALL {f 12} UP 1}
+} -match glob -result {CALL {g 1212} CALL {f 12} UP 3}
# Errors in error command itself
@@ -244,7 +244,7 @@ test error-6.10 {catch must reset errorstack} -body {
catch {f 13}
set e2 [info errorstack]
list $e1 $e2
-} -match glob -result {{CALL {g 1212} CALL {f 12} UP 1} {CALL {g 1313} CALL {f 13} UP 1}}
+} -match glob -result {{CALL {g 1212} CALL {f 12} UP 3} {CALL {g 1313} CALL {f 13} UP 3}}
test error-7.1 {Bug 1397843} -body {
variable cmds
diff --git a/tests/result.test b/tests/result.test
index 8bde7ef..a610343 100644
--- a/tests/result.test
+++ b/tests/result.test
@@ -138,11 +138,11 @@ test result-6.3 {Bug 2383005} {
test result-6.4 {non-list -errorstack} {
catch {return -code error -errorstack {{}a} eek} m o
list $m [dict get $o -errorcode] [dict get $o -errorstack]
-} {{bad -errorstack value: expected a list but got "{}a"} {TCL RESULT NONLIST_ERRORSTACK} {UP 1}}
+} {{bad -errorstack value: expected a list but got "{}a"} {TCL RESULT NONLIST_ERRORSTACK} {UP 3}}
test result-6.5 {odd-sized-list -errorstack} {
catch {return -code error -errorstack a eek} m o
list $m [dict get $o -errorcode] [dict get $o -errorstack]
-} {{forbidden odd-sized list for -errorstack: "a"} {TCL RESULT ODDSIZEDLIST_ERRORSTACK} {UP 1}}
+} {{forbidden odd-sized list for -errorstack: "a"} {TCL RESULT ODDSIZEDLIST_ERRORSTACK} {UP 3}}
# cleanup
cleanupTests
return