summaryrefslogtreecommitdiffstats
path: root/generic/tclInterp.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2013-02-27 12:06:40 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2013-02-27 12:06:40 (GMT)
commit8ef8edabe2bb9d9fc6364861567a343f0c9f6f2c (patch)
tree093de949b687d61c7797d802193309d8568f0a0b /generic/tclInterp.c
parentecf687e081191d5ebb3a46a54589f19e41a4d7d1 (diff)
parent47bc13b6d44edf2161eb16a0ae13020000cb8732 (diff)
downloadtcl-8ef8edabe2bb9d9fc6364861567a343f0c9f6f2c.zip
tcl-8ef8edabe2bb9d9fc6364861567a343f0c9f6f2c.tar.gz
tcl-8ef8edabe2bb9d9fc6364861567a343f0c9f6f2c.tar.bz2
merge trunk.
Implement Tcl_VarTraceInfo and Tcl_UpVar as macro.
Diffstat (limited to 'generic/tclInterp.c')
-rw-r--r--generic/tclInterp.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/generic/tclInterp.c b/generic/tclInterp.c
index 8b7a5a4..241d428 100644
--- a/generic/tclInterp.c
+++ b/generic/tclInterp.c
@@ -179,6 +179,37 @@ typedef struct {
} ScriptLimitCallbackKey;
/*
+ * TIP#143 limit handler internal representation.
+ */
+
+struct LimitHandler {
+ int flags; /* The state of this particular handler. */
+ Tcl_LimitHandlerProc *handlerProc;
+ /* The handler callback. */
+ ClientData clientData; /* Opaque argument to the handler callback. */
+ Tcl_LimitHandlerDeleteProc *deleteProc;
+ /* How to delete the clientData. */
+ LimitHandler *prevPtr; /* Previous item in linked list of
+ * handlers. */
+ LimitHandler *nextPtr; /* Next item in linked list of handlers. */
+};
+
+/*
+ * Values for the LimitHandler flags field.
+ * LIMIT_HANDLER_ACTIVE - Whether the handler is currently being
+ * processed; handlers are never to be entered reentrantly.
+ * LIMIT_HANDLER_DELETED - Whether the handler has been deleted. This
+ * should not normally be observed because when a handler is
+ * deleted it is also spliced out of the list of handlers, but
+ * even so we will be careful.
+ */
+
+#define LIMIT_HANDLER_ACTIVE 0x01
+#define LIMIT_HANDLER_DELETED 0x02
+
+
+
+/*
* Prototypes for local static functions:
*/