summaryrefslogtreecommitdiffstats
path: root/win/tclWinInt.h
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2014-02-18 10:56:12 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2014-02-18 10:56:12 (GMT)
commit340a361ed19847861c47b986eb8d522c1a6cc700 (patch)
tree6b6bdfeebd073f7857ec4893ca9bb3a9b008b3aa /win/tclWinInt.h
parente810c9099a64e6af0d3aad22f673de6edcb68cd7 (diff)
parentecc126bc275141ebdaa83e74dd87645d1680d01c (diff)
downloadtcl-340a361ed19847861c47b986eb8d522c1a6cc700.zip
tcl-340a361ed19847861c47b986eb8d522c1a6cc700.tar.gz
tcl-340a361ed19847861c47b986eb8d522c1a6cc700.tar.bz2
merge novem
Diffstat (limited to 'win/tclWinInt.h')
-rw-r--r--win/tclWinInt.h23
1 files changed, 17 insertions, 6 deletions
diff --git a/win/tclWinInt.h b/win/tclWinInt.h
index b3753f4..87ccb1b 100644
--- a/win/tclWinInt.h
+++ b/win/tclWinInt.h
@@ -14,6 +14,23 @@
#include "tclInt.h"
+#ifdef HAVE_NO_SEH
+/*
+ * Unlike Borland and Microsoft, we don't register exception handlers by
+ * pushing registration records onto the runtime stack. Instead, we register
+ * them by creating an TCLEXCEPTION_REGISTRATION within the activation record.
+ */
+
+typedef struct TCLEXCEPTION_REGISTRATION {
+ struct TCLEXCEPTION_REGISTRATION *link;
+ EXCEPTION_DISPOSITION (*handler)(
+ struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*);
+ void *ebp;
+ void *esp;
+ int status;
+} TCLEXCEPTION_REGISTRATION;
+#endif
+
/*
* Utility macros: STRINGIFY takes an argument and wraps it in "" (double
* quotation marks), JOIN joins two arguments.
@@ -47,12 +64,6 @@
# define TCL_I_MODIFIER ""
#endif
-#ifdef _WIN64
-# define TCL_I_MODIFIER "I"
-#else
-# define TCL_I_MODIFIER ""
-#endif
-
/*
* Declarations of functions that are not accessible by way of the
* stubs table.