summaryrefslogtreecommitdiff
path: root/libguile/objcodes.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-11-18 22:30:27 +0100
committerAndy Wingo <wingo@pobox.com>2010-11-19 15:22:43 +0100
commit3d27ef4bd312750f8edca81f09644eab21a3d8e0 (patch)
tree74f9b5a8c6419e5b2c14bd7df069e7b8c621fa62 /libguile/objcodes.c
parentf0c56cadfda6f8e9691d5e12cbd1778f36bfde2a (diff)
downloadguile-3d27ef4bd312750f8edca81f09644eab21a3d8e0.tar.gz
fix a number of assumptions that a pointer could fit into a long
* libguile/debug.c: * libguile/eval.c: * libguile/frames.c: * libguile/objcodes.c: * libguile/print.c: * libguile/programs.c: * libguile/read.c: * libguile/struct.c: * libguile/vm.c: Fix a number of instances in which we assumed we could fit a pointer into a long.
Diffstat (limited to 'libguile/objcodes.c')
-rw-r--r--libguile/objcodes.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/libguile/objcodes.c b/libguile/objcodes.c
index f54e79bd6..5f3079c87 100644
--- a/libguile/objcodes.c
+++ b/libguile/objcodes.c
@@ -123,11 +123,12 @@ scm_c_make_objcode_slice (SCM parent, const scm_t_uint8 *ptr)
if (ptr < parent_base
|| ptr >= (parent_base + parent_data->len + parent_data->metalen
- sizeof (struct scm_objcode)))
- scm_misc_error (FUNC_NAME, "offset out of bounds (~a vs ~a + ~a + ~a)",
- scm_list_4 (scm_from_ulong ((unsigned long) ptr),
- scm_from_ulong ((unsigned long) parent_base),
- scm_from_uint32 (parent_data->len),
- scm_from_uint32 (parent_data->metalen)));
+ scm_misc_error
+ (FUNC_NAME, "offset out of bounds (~a vs ~a + ~a + ~a)",
+ scm_list_4 (scm_from_unsigned_integer ((scm_t_bits) ptr),
+ scm_from_unsigned_integer ((scm_t_bits) parent_base),
+ scm_from_uint32 (parent_data->len),
+ scm_from_uint32 (parent_data->metalen)));
/* Make sure bytecode for the objcode-meta is suitable aligned. Failing to
do so leads to SIGBUS/SIGSEGV on some arches (e.g., SPARC). */