summaryrefslogtreecommitdiffstats
path: root/generic/tclInterp.c
diff options
context:
space:
mode:
authordgp@users.sourceforge.net <dgp>2013-04-11 14:39:56 (GMT)
committerdgp@users.sourceforge.net <dgp>2013-04-11 14:39:56 (GMT)
commit0cc324167c46f7af3f9fdf5b98499c213f972d90 (patch)
treefde79e95ade9c60439157c28fd46c4a1ec8d41ac /generic/tclInterp.c
parentca7b0424f8790725633aaa2dbad068a9b17d6294 (diff)
downloadtcl-0cc324167c46f7af3f9fdf5b98499c213f972d90.zip
tcl-0cc324167c46f7af3f9fdf5b98499c213f972d90.tar.gz
tcl-0cc324167c46f7af3f9fdf5b98499c213f972d90.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;