summaryrefslogtreecommitdiffstats
path: root/generic/tclNRE.h
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2016-01-18 06:12:15 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2016-01-18 06:12:15 (GMT)
commitad1616e27816a418512271c07f7016f8b6bce72e (patch)
tree733bc473514c2b9923cce55886368a018e1d1052 /generic/tclNRE.h
parent09b8d0d108bdb52be039e5126b6dbea0fa1e0aca (diff)
downloadtcl-ad1616e27816a418512271c07f7016f8b6bce72e.zip
tcl-ad1616e27816a418512271c07f7016f8b6bce72e.tar.gz
tcl-ad1616e27816a418512271c07f7016f8b6bce72e.tar.bz2
introduce macros NRE_JUMP and NRE_NEXT to abstract the NRE mechanism, previous to introducing an alternative to the trampoline implementation; no functional change for now
Diffstat (limited to 'generic/tclNRE.h')
-rw-r--r--generic/tclNRE.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/generic/tclNRE.h b/generic/tclNRE.h
index 1a72396..585b4c5 100644
--- a/generic/tclNRE.h
+++ b/generic/tclNRE.h
@@ -63,6 +63,13 @@ typedef struct NRE_stack {
#define NEXT_CB(ptr) TclNextCallback(ptr)
+#define NRE_NEXT(result) \
+ return (result)
+
+#define NRE_JUMP(interp,postProcPtr,data0,data1,data2,data3) \
+ TclNRAddCallback((interp),(postProcPtr),(data0),(data1),(data2),(data3)); \
+ NRE_NEXT(TCL_OK)
+
MODULE_SCOPE NRE_callback *TclNewCallback(Tcl_Interp *interp);
MODULE_SCOPE NRE_callback *TclPopCallback(Tcl_Interp *interp);
MODULE_SCOPE NRE_callback *TclNextCallback(NRE_callback *ptr);