summaryrefslogtreecommitdiff
path: root/libguile/frames.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2012-01-30 18:52:46 +0100
committerAndy Wingo <wingo@pobox.com>2012-01-30 18:52:46 +0100
commit252acfe8e70ac4c7d325588ffea1905fcf6f86b2 (patch)
treee31cae9d145548b86cba6764d0943329a4ef64d1 /libguile/frames.c
parent855db1905d56efcdf91ae51a9e80990f79030eae (diff)
parent3d51e57cfb0404db568a6adfde2a346d3fd9907e (diff)
downloadguile-252acfe8e70ac4c7d325588ffea1905fcf6f86b2.tar.gz
Merge commit '3d51e57cfb0404db568a6adfde2a346d3fd9907e'
Conflicts: libguile/foreign.c libguile/hashtab.c module/ice-9/psyntax-pp.scm module/language/tree-il/compile-glil.scm
Diffstat (limited to 'libguile/frames.c')
-rw-r--r--libguile/frames.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libguile/frames.c b/libguile/frames.c
index b805137a4..b57b1295d 100644
--- a/libguile/frames.c
+++ b/libguile/frames.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2009, 2010, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@@ -24,9 +24,16 @@
#include <string.h>
#include "_scm.h"
#include "frames.h"
+#include <verify.h>
+
+/* Make sure assumptions on the layout of `struct scm_vm_frame' hold. */
+verify (sizeof (SCM) == sizeof (SCM *));
+verify (sizeof (struct scm_vm_frame) == 5 * sizeof (SCM));
+verify (offsetof (struct scm_vm_frame, dynamic_link) == 0);
-#define RELOC(frame, val) (val + SCM_VM_FRAME_OFFSET (frame))
+#define RELOC(frame, val) \
+ (((SCM *) (val)) + SCM_VM_FRAME_OFFSET (frame))
SCM
scm_c_make_frame (SCM stack_holder, SCM *fp, SCM *sp,