objcode type is an enumeration, not flags
authorAndy Wingo <wingo@pobox.com>
Thu, 27 Jan 2011 11:44:53 +0000 (12:44 +0100)
committerAndy Wingo <wingo@pobox.com>
Thu, 27 Jan 2011 12:08:01 +0000 (13:08 +0100)
commitf9654187b1ff0e20dfcb66da963eae62f4d03be1
treee3ec8181255b693e5997d255599d27a537c9e096
parent9805ffdaf770f7129db31213f1d9319eaa98a84e
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.
libguile/continuations.c
libguile/control.c
libguile/foreign.c
libguile/gsubr.c
libguile/objcodes.c
libguile/objcodes.h
libguile/smob.c