summaryrefslogtreecommitdiffstats
path: root/generic/tclInterp.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2013-04-11 14:39:56 (GMT)
committerdgp <dgp@users.sourceforge.net>2013-04-11 14:39:56 (GMT)
commit2816004e58ac0da7bde02b0159b164e54c04ab6a (patch)
treefde79e95ade9c60439157c28fd46c4a1ec8d41ac /generic/tclInterp.c
parent236381c05a24d18a62fdd7a08931df13db530548 (diff)
downloadtcl-2816004e58ac0da7bde02b0159b164e54c04ab6a.zip
tcl-2816004e58ac0da7bde02b0159b164e54c04ab6a.tar.gz
tcl-2816004e58ac0da7bde02b0159b164e54c04ab6a.tar.bz2
New internal routine TclNRInvoke() - NR-enabled path through the machinery
behind invokehidden commands.
Diffstat (limited to 'generic/tclInterp.c')
-rw-r--r--generic/tclInterp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/generic/tclInterp.c b/generic/tclInterp.c
index 1a4297b..ac51d9d 100644
--- a/generic/tclInterp.c
+++ b/generic/tclInterp.c
@@ -3052,7 +3052,12 @@ SlaveInvokeHidden(
Tcl_AllowExceptions(slaveInterp);
if (namespaceName == NULL) {
- result = TclObjInvoke(slaveInterp, objc, objv, TCL_INVOKE_HIDDEN);
+ if (interp == slaveInterp) {
+ Tcl_Release(slaveInterp);
+ return TclNRInvoke(NULL, slaveInterp, objc, objv);
+ } else {
+ result = TclObjInvoke(slaveInterp, objc, objv, TCL_INVOKE_HIDDEN);
+ }
} else {
Namespace *nsPtr, *dummy1, *dummy2;
const char *tail;