summaryrefslogtreecommitdiffstats
path: root/setjump.h
diff options
context:
space:
mode:
Diffstat (limited to 'setjump.h')
-rw-r--r--setjump.h24
1 files changed, 17 insertions, 7 deletions
diff --git a/setjump.h b/setjump.h
index 09a1377..b794bca 100644
--- a/setjump.h
+++ b/setjump.h
@@ -1,18 +1,18 @@
/* Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
- *
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111, USA.
*
* As a special exception, the Free Software Foundation gives permission
* for additional uses of the text contained in its release of GUILE.
@@ -36,7 +36,7 @@
*
* If you write modifications of your own for GUILE, it is your choice
* whether to permit this exception to apply to your modifications.
- * If you do not wish that, delete this exception notice.
+ * If you do not wish that, delete this exception notice.
*/
/* "setjump.h" memory and stack parameters.
@@ -125,11 +125,21 @@
/* other.dynenv and other.parent get GCed just by being there. */
struct scm_other {SCM dynenv;
SCM parent;
- SCM env;
+ SCM stkframe[2];
+ SCM estk;
+ SCM *estk_ptr;
};
#define CONTINUATION_OTHER struct scm_other
#define CONT(x) ((CONTINUATION *)CDR(x))
#define SETCONT SETCDR
-void dowinds P((SCM to, long delta));
+void dowinds P((SCM to));
#include "continue.h"
+
+typedef struct safeport {
+ SCM port;
+ jmp_buf jmpbuf; /* The usual C jmp_buf, not SCM's jump_buf */
+ int ccnt;
+} safeport;
+
+#define SAFEP_JMPBUF(sfp) (((safeport *)STREAM(sfp))->jmpbuf)