diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-09-19 08:56:26 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-09-19 08:56:26 (GMT) |
commit | 2e6ebdc5911a7793d59ed3041cce1a61cc5f822b (patch) | |
tree | 0379641f302191450f3f8f2b8753bf3a0b0b656d /generic/tclProc.c | |
parent | 7b46c41c056ce57494a3dc67b3f17fdf344ce9fb (diff) | |
parent | 58467a7afe9d9eb62bb1da4d29690223a3681c16 (diff) | |
download | tcl-2e6ebdc5911a7793d59ed3041cce1a61cc5f822b.zip tcl-2e6ebdc5911a7793d59ed3041cce1a61cc5f822b.tar.gz tcl-2e6ebdc5911a7793d59ed3041cce1a61cc5f822b.tar.bz2 |
Merge 8.7
Diffstat (limited to 'generic/tclProc.c')
-rw-r--r-- | generic/tclProc.c | 56 |
1 files changed, 50 insertions, 6 deletions
diff --git a/generic/tclProc.c b/generic/tclProc.c index 4d421c7..7d92388 100644 --- a/generic/tclProc.c +++ b/generic/tclProc.c @@ -1631,6 +1631,43 @@ TclNRInterpProc( } return TclNRInterpProcCore(interp, objv[0], 1, &MakeProcError); } + +static int +NRInterpProc2( + ClientData clientData, /* Record describing procedure to be + * interpreted. */ + Tcl_Interp *interp,/* Interpreter in which procedure was + * invoked. */ + size_t objc, /* Count of number of arguments to this + * procedure. */ + Tcl_Obj *const objv[]) /* Argument value objects. */ +{ + int result = TclPushProcCallFrame(clientData, interp, objc, objv, + /*isLambda*/ 0); + + if (result != TCL_OK) { + return TCL_ERROR; + } + return TclNRInterpProcCore(interp, objv[0], 1, &MakeProcError); +} + +static int +ObjInterpProc2( + ClientData clientData, /* Record describing procedure to be + * interpreted. */ + Tcl_Interp *interp,/* Interpreter in which procedure was + * invoked. */ + size_t objc, /* Count of number of arguments to this + * procedure. */ + Tcl_Obj *const objv[]) /* Argument value objects. */ +{ + /* + * Not used much in the core; external interface for iTcl + */ + + return Tcl_NRCallObjProc2(interp, NRInterpProc2, clientData, objc, objv); +} + /* *---------------------------------------------------------------------- @@ -2224,15 +2261,16 @@ TclUpdateReturnInfo( /* *---------------------------------------------------------------------- * - * TclGetObjInterpProc -- + * TclGetObjInterpProc/TclGetObjInterpProc2 -- * - * Returns a pointer to the TclObjInterpProc function; this is different - * from the value obtained from the TclObjInterpProc reference on systems - * like Windows where import and export versions of a function exported - * by a DLL exist. + * Returns a pointer to the TclObjInterpProc/ObjInterpProc2 functions; + * this is different from the value obtained from the TclObjInterpProc + * reference on systems like Windows where import and export versions + * of a function exported by a DLL exist. * * Results: - * Returns the internal address of the TclObjInterpProc function. + * Returns the internal address of the TclObjInterpProc/ObjInterpProc2 + * functions. * * Side effects: * None. @@ -2245,6 +2283,12 @@ TclGetObjInterpProc(void) { return TclObjInterpProc; } + +Tcl_ObjCmdProc2 * +TclGetObjInterpProc2(void) +{ + return ObjInterpProc2; +} /* *---------------------------------------------------------------------- |