summaryrefslogtreecommitdiffstats
path: root/generic/tclProc.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-09-19 08:56:26 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-09-19 08:56:26 (GMT)
commit2e6ebdc5911a7793d59ed3041cce1a61cc5f822b (patch)
tree0379641f302191450f3f8f2b8753bf3a0b0b656d /generic/tclProc.c
parent7b46c41c056ce57494a3dc67b3f17fdf344ce9fb (diff)
parent58467a7afe9d9eb62bb1da4d29690223a3681c16 (diff)
downloadtcl-2e6ebdc5911a7793d59ed3041cce1a61cc5f822b.zip
tcl-2e6ebdc5911a7793d59ed3041cce1a61cc5f822b.tar.gz
tcl-2e6ebdc5911a7793d59ed3041cce1a61cc5f822b.tar.bz2
Merge 8.7
Diffstat (limited to 'generic/tclProc.c')
-rw-r--r--generic/tclProc.c56
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;
+}
/*
*----------------------------------------------------------------------