diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2016-01-18 06:12:15 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2016-01-18 06:12:15 (GMT) |
commit | ad1616e27816a418512271c07f7016f8b6bce72e (patch) | |
tree | 733bc473514c2b9923cce55886368a018e1d1052 /generic/tclNRE.h | |
parent | 09b8d0d108bdb52be039e5126b6dbea0fa1e0aca (diff) | |
download | tcl-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.h | 7 |
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); |