diff options
author | Andy Wingo <wingo@pobox.com> | 2011-01-27 12:44:53 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-01-27 13:08:01 +0100 |
commit | f9654187b1ff0e20dfcb66da963eae62f4d03be1 (patch) | |
tree | e3ec8181255b693e5997d255599d27a537c9e096 /libguile/objcodes.c | |
parent | 9805ffdaf770f7129db31213f1d9319eaa98a84e (diff) | |
download | guile-f9654187b1ff0e20dfcb66da963eae62f4d03be1.tar.gz |
objcode type is an enumeration, not flags
* libguile/objcodes.h (SCM_OBJCODE_TYPE_MMAP)
(SCM_OBJCODE_TYPE_BYTEVECTOR, SCM_OBJCODE_TYPE_SLICE)
(SCM_OBJCODE_TYPE_STATIC): Enumerate objcode types instead of
expressing them as flags.
(SCM_OBJCODE_TYPE): Type is held in bits 8-15.
(SCM_OBJCODE_FLAGS): Flags are now shifted by 16 bits, not 8.
(SCM_MAKE_OBJCODE_TAG): New helper.
* libguile/continuations.c (STATIC_OBJCODE_TAG):
* libguile/control.c (STATIC_OBJCODE_TAG):
* libguile/foreign.c (STATIC_OBJCODE_TAG):
* libguile/gsubr.c (STATIC_OBJCODE_TAG):
* libguile/smob.c (STATIC_OBJCODE_TAG):
* libguile/objcodes.c (make_objcode_by_mmap, scm_c_make_objcode_slice)
(scm_bytecode_to_objcode): : Use SCM_MAKE_OBJCODE_TAG.
Diffstat (limited to 'libguile/objcodes.c')
-rw-r--r-- | libguile/objcodes.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libguile/objcodes.c b/libguile/objcodes.c index 68035f581..1c3c525f2 100644 --- a/libguile/objcodes.c +++ b/libguile/objcodes.c @@ -98,7 +98,7 @@ make_objcode_by_mmap (int fd) + data->metalen))); } - sret = scm_double_cell (scm_tc7_objcode | (SCM_F_OBJCODE_IS_MMAP<<8), + sret = scm_double_cell (SCM_MAKE_OBJCODE_TAG (SCM_OBJCODE_TYPE_MMAP, 0), (scm_t_bits)(addr + strlen (SCM_OBJCODE_COOKIE)), SCM_UNPACK (SCM_BOOL_F), (scm_t_bits)fd); @@ -139,7 +139,7 @@ scm_c_make_objcode_slice (SCM parent, const scm_t_uint8 *ptr) assert (SCM_C_OBJCODE_BASE (data) + data->len + data->metalen <= parent_base + parent_data->len + parent_data->metalen); - return scm_double_cell (scm_tc7_objcode | (SCM_F_OBJCODE_IS_SLICE<<8), + return scm_double_cell (SCM_MAKE_OBJCODE_TAG (SCM_OBJCODE_TYPE_SLICE, 0), (scm_t_bits)data, SCM_UNPACK (parent), 0); } #undef FUNC_NAME @@ -198,7 +198,7 @@ SCM_DEFINE (scm_bytecode_to_objcode, "bytecode->objcode", 1, 0, 0, /* foolishly, we assume that as long as bytecode is around, that c_bytecode will be of the same length; perhaps a bad assumption? */ - return scm_double_cell (scm_tc7_objcode | (SCM_F_OBJCODE_IS_BYTEVECTOR<<8), + return scm_double_cell (SCM_MAKE_OBJCODE_TAG (SCM_OBJCODE_TYPE_BYTEVECTOR, 0), (scm_t_bits)data, SCM_UNPACK (bytecode), 0); } #undef FUNC_NAME |