diff options
author | Neil Jerram <neil@ossau.uklinux.net> | 2009-09-17 00:14:16 +0100 |
---|---|---|
committer | Neil Jerram <neil@ossau.uklinux.net> | 2009-09-17 00:19:47 +0100 |
commit | ba20f78a6c91e0535d205f7f5291d860c1bcbc27 (patch) | |
tree | 86df1d3f6e5b5fa88d57e96660ef355c1db20a17 /libguile/vm.c | |
parent | 931c82f5b02213c8e9e1cca2b21672b809970e18 (diff) | |
download | guile-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.c | 2 |
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; } |