diff options
Diffstat (limited to 'generic/tclBasic.c')
-rw-r--r-- | generic/tclBasic.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index c7bce32..fe486ad 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -839,7 +839,7 @@ Tcl_CreateInterp(void) TclNRYieldObjCmd, INT2PTR(CORO_ACTIVATE_YIELDM), NULL); Tcl_NRCreateCommand(interp, "::tcl::unsupported::inject", NULL, NRCoroInjectObjCmd, NULL, NULL); - + #ifdef USE_DTRACE /* * Register the tcl::dtrace command. @@ -4147,8 +4147,6 @@ TclNREvalObjv( Interp *iPtr = (Interp *) interp; int result; Namespace *lookupNsPtr = iPtr->lookupNsPtr; - Tcl_ObjCmdProc *objProc; - ClientData objClientData; Command **cmdPtrPtr; iPtr->lookupNsPtr = NULL; @@ -4287,6 +4285,7 @@ TclNREvalObjv( * a callback to do the actual running. */ +#if 0 objProc = cmdPtr->nreProc; if (!objProc) { objProc = cmdPtr->objProc; @@ -4295,7 +4294,15 @@ TclNREvalObjv( TclNRAddCallback(interp, NRRunObjProc, objProc, objClientData, INT2PTR(objc), (ClientData) objv); - return TCL_OK; +#else + if (cmdPtr->nreProc) { + TclNRAddCallback(interp, NRRunObjProc, cmdPtr->nreProc, + cmdPtr->objClientData, INT2PTR(objc), (ClientData) objv); + return TCL_OK; + } else { + return cmdPtr->objProc(cmdPtr->objClientData, interp, objc, objv); + } +#endif } void @@ -8625,7 +8632,7 @@ NRCoroutineCallerCallback( NRE_ASSERT(COR_IS_SUSPENDED(corPtr)); SAVE_CONTEXT(corPtr->running); RESTORE_CONTEXT(corPtr->caller); - + if (cmdPtr->flags & CMD_IS_DELETED) { /* * The command was deleted while it was running: wind down the |