diff options
author | dgp <dgp@users.sourceforge.net> | 2013-04-11 14:39:56 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2013-04-11 14:39:56 (GMT) |
commit | 2816004e58ac0da7bde02b0159b164e54c04ab6a (patch) | |
tree | fde79e95ade9c60439157c28fd46c4a1ec8d41ac /generic/tclInterp.c | |
parent | 236381c05a24d18a62fdd7a08931df13db530548 (diff) | |
download | tcl-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.c | 7 |
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; |