summaryrefslogtreecommitdiffstats
path: root/generic/tclNRE.h
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2008-07-18 23:29:41 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2008-07-18 23:29:41 (GMT)
commit05ee62d96f55adfce2725b9746b6c8b0557989ee (patch)
tree280786ed54f598938301797f6f922caec6fa26b5 /generic/tclNRE.h
parent7c31170f9b9f73628665a5656daddd8002c771f7 (diff)
downloadtcl-05ee62d96f55adfce2725b9746b6c8b0557989ee.zip
tcl-05ee62d96f55adfce2725b9746b6c8b0557989ee.tar.gz
tcl-05ee62d96f55adfce2725b9746b6c8b0557989ee.tar.bz2
new TclNRAddCallback macro for internal use instead of the public
Tcl_NRAddCallback
Diffstat (limited to 'generic/tclNRE.h')
-rw-r--r--generic/tclNRE.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/generic/tclNRE.h b/generic/tclNRE.h
index 0d13d3a..08ddcd5 100644
--- a/generic/tclNRE.h
+++ b/generic/tclNRE.h
@@ -11,7 +11,7 @@
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* // FIXME: RCS numbering?
- * RCS: @(#) $Id: tclNRE.h,v 1.3 2008/07/18 13:46:46 msofer Exp $
+ * RCS: @(#) $Id: tclNRE.h,v 1.4 2008/07/18 23:29:44 msofer Exp $
*/
@@ -171,6 +171,32 @@ typedef struct TEOV_record {
#define TEBC_DO_EXEC 1 /* MUST NOT be 0 */
#define TEBC_DO_TAILCALL 2
+#define TclNRAddCallback(\
+ interp,\
+ postProcPtr,\
+ data0,\
+ data1,\
+ data2,\
+ data3) \
+ { \
+ TEOV_record *recordPtr; \
+ TEOV_callback *callbackPtr; \
+ \
+ recordPtr = TOP_RECORD(interp); \
+ TclSmallAlloc(sizeof(TEOV_callback), callbackPtr); \
+ \
+ callbackPtr->procPtr = (postProcPtr); \
+ callbackPtr->data[0] = (data0); \
+ callbackPtr->data[1] = (data1); \
+ callbackPtr->data[2] = (data2); \
+ callbackPtr->data[3] = (data3); \
+ \
+ callbackPtr->nextPtr = recordPtr->callbackPtr; \
+ recordPtr->callbackPtr = callbackPtr; \
+ }
+
+
+
/*
* These are only used by TEOV; here for ease of ref. They should move to
* tclBasic.c later on.