summaryrefslogtreecommitdiff
path: root/libguile/vm.c
diff options
context:
space:
mode:
authorNeil Jerram <neil@ossau.uklinux.net>2009-09-17 00:14:16 +0100
committerNeil Jerram <neil@ossau.uklinux.net>2009-09-17 00:19:47 +0100
commitba20f78a6c91e0535d205f7f5291d860c1bcbc27 (patch)
tree86df1d3f6e5b5fa88d57e96660ef355c1db20a17 /libguile/vm.c
parent931c82f5b02213c8e9e1cca2b21672b809970e18 (diff)
downloadguile-ba20f78a6c91e0535d205f7f5291d860c1bcbc27.tar.gz
Fix omission of VM frames from backtrace
From the time when a #<program> was a SMOB, really_make_boot_program in vm.c was still using SCM_SET_SMOB_FLAGS to set the SCM_F_PROGRAM_IS_BOOT flag - which meant that it was setting flag 1<<32 :-) which obviously was then missed by the SCM_PROGRAM_IS_BOOT calls in stacks.c. * libguile/programs.h (SCM_F_PROGRAM_IS_BOOT): Use a less significant bit for this flag, now that programs use a tc7 type. * libguile/vm.c (really_make_boot_program): Don't use SCM_SET_SMOB_FLAGS, now that programs aren't SMOBs.
Diffstat (limited to 'libguile/vm.c')
-rw-r--r--libguile/vm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile/vm.c b/libguile/vm.c
index 4e4a361f6..d41c8cd41 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -203,7 +203,7 @@ really_make_boot_program (long nargs)
sizeof (struct scm_objcode) + sizeof (text));
ret = scm_make_program (scm_bytecode_to_objcode (u8vec),
SCM_BOOL_F, SCM_BOOL_F);
- SCM_SET_SMOB_FLAGS (ret, SCM_F_PROGRAM_IS_BOOT);
+ SCM_SET_CELL_WORD_0 (ret, SCM_CELL_WORD_0 (ret) | SCM_F_PROGRAM_IS_BOOT);
return ret;
}