diff options
author | dgp <dgp@users.sourceforge.net> | 2016-05-24 20:16:10 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2016-05-24 20:16:10 (GMT) |
commit | 76b6abb07e94280e27b013d5c2610b67776aa6a1 (patch) | |
tree | 9017fe11b364e0f8f2b0fcd6830e3ffef2bafe79 | |
parent | c0771697239c868133d1f53442b91259ab58cf25 (diff) | |
download | tcl-76b6abb07e94280e27b013d5c2610b67776aa6a1.zip tcl-76b6abb07e94280e27b013d5c2610b67776aa6a1.tar.gz tcl-76b6abb07e94280e27b013d5c2610b67776aa6a1.tar.bz2 |
New test namespace-53.11 demonstrates the bug.
-rw-r--r-- | generic/tclEnsemble.c | 8 | ||||
-rw-r--r-- | tests/namespace.test | 16 |
2 files changed, 17 insertions, 7 deletions
diff --git a/generic/tclEnsemble.c b/generic/tclEnsemble.c index c947459..c85828b 100644 --- a/generic/tclEnsemble.c +++ b/generic/tclEnsemble.c @@ -12,7 +12,6 @@ #include "tclInt.h" #include "tclCompile.h" -#include "assert.h" /* * Declarations for functions local to this file: @@ -1892,13 +1891,8 @@ NsEnsembleImplementationCmdNR( * relative to old one. */ if (ni > 0) { iPtr->ensembleRewrite.numRemovedObjs += ni; -fprintf(stdout, "%d == %d\n", -iPtr->ensembleRewrite.numInsertedObjs - 1, -ensemblePtr->numParameters); -fflush(stdout); -assert(iPtr->ensembleRewrite.numInsertedObjs - 1 == ensemblePtr->numParameters); - iPtr->ensembleRewrite.numInsertedObjs += prefixObjc-1; +// iPtr->ensembleRewrite.numInsertedObjs = prefixObjc + ensemblePtr->numParameters; } else { iPtr->ensembleRewrite.numInsertedObjs += prefixObjc-2; } diff --git a/tests/namespace.test b/tests/namespace.test index cb9bc8c..2ba695a 100644 --- a/tests/namespace.test +++ b/tests/namespace.test @@ -2928,6 +2928,22 @@ test namespace-53.10 {ensembles: nested rewrite} -setup { 0 {1 v}\ 1 {wrong # args: should be "ns v x z2 a2"}\ 0 {2 v v2}} +test namespace-53.11 {ensembles: nested rewrite} -setup { + namespace eval ns { + namespace export x + namespace eval x { + proc z2 {a1 a2} {list 2 $a1 $a2} + namespace export z* + namespace ensemble create -parameter p + } + namespace ensemble create + } +} -body { + list [catch {ns x 1 z2} msg] $msg +} -cleanup { + namespace delete ns + unset -nocomplain msg +} -result {1 {wrong # args: should be "ns x 1 z2 a2"}} test namespace-54.1 {leak on namespace deletion} -constraints {memory} \ -setup { |