897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
|
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
|
-
+
-
|
* between, then evaluate the result. Tcl_EvalObjEx will delete the
* object when it decrements its refcount after eval'ing it.
*/
objPtr = Tcl_ConcatObj(objc, objv);
}
TclNRAddCallback(interp, Uplevel_Callback, savedVarFramePtr, NULL, NULL,
TclNRAddCallback(interp, Uplevel_Callback, savedVarFramePtr, NULL, NULL);
NULL);
return TclNREvalObjEx(interp, objPtr, 0);
}
/*
*----------------------------------------------------------------------
*
* TclFindProc --
|
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
|
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
|
-
+
-
|
/*
* Invoke the commands in the procedure's body.
*/
procPtr->refCount++;
codePtr = procPtr->bodyPtr->internalRep.twoPtrValue.ptr1;
TclNRAddCallback(interp, InterpProcNR2, procNameObj, errorProc,
TclNRAddCallback(interp, InterpProcNR2, procNameObj, errorProc, NULL);
NULL, NULL);
return TclNRExecuteByteCode(interp, codePtr);
}
static int
InterpProcNR2(
ClientData data[],
Tcl_Interp *interp,
|
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
|
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
|
-
+
|
} else {
iPtr->ensembleRewrite.numInsertedObjs -= 1;
}
extraPtr->isRootEnsemble = isRootEnsemble;
result = TclPushProcCallFrame(procPtr, interp, objc, objv, 1);
if (result == TCL_OK) {
TclNRAddCallback(interp, ApplyNR2, extraPtr, NULL, NULL, NULL);
TclNRAddCallback(interp, ApplyNR2, extraPtr, NULL, NULL);
result = TclNRInterpProcCore(interp, objv[1], 2, &MakeLambdaError);
}
return result;
}
static int
ApplyNR2(
|