7.10 Unsafe C macros
All of the C functions & macros described previously verify that their
arguments have the appropriate types and lie in the appropriate ranges.
The following macros are identical to their safe counterparts, except
that the unsafe variants, by contrast, do not verify coherency
of their arguments. They are provided for the purpose of writing more
efficient code; their general use is not recommended.
— C macro: char
S48_UNSAFE_EXTRACT_CHAR (
s48_value char)
— C macro: char *
S48_UNSAFE_EXTRACT_STRING (
s48_value string)
— C macro: long
S48_UNSAFE_EXTRACT_INTEGER (
s48_value integer)
— C macro: double
S48_UNSAFE_EXTRACT_DOUBLE (
s48_value double)
— C macro: long
S48_UNSAFE_EXTRACT_FIXNUM (
s48_value fixnum)
— C macro: s48_value
S48_UNSAFE_ENTER_FIXNUM (
long integer)
— C macro: s48_value
S48_UNSAFE_CAR (
s48_value pair)
— C macro: s48_value
S48_UNSAFE_CDR (
s48_value pair)
— C macro: void
S48_UNSAFE_SET_CAR (
s48_value pair, s48_value value)
— C macro: void
S48_UNSAFE_SET_CDR (
s48_value pair, s48_value value)
— C macro: long
S48_UNSAFE_VECTOR_LENGTH (
s48_value vector)
— C macro: s48_value
S48_UNSAFE_VECTOR_REF (
s48_value vector, long index)
— C macro: void
S48_UNSAFE_VECTOR_SET (
s48_value vector, long index, s48_value value)
— C macro: long
S48_UNSAFE_STRING_LENGTH (
s48_value string)
— C macro: char
S48_UNSAFE_STRING_REF (
s48_value string, long index)
— C macro: void
S48_UNSAFE_STRING_SET (
s48_value string, long index, char char)
— C macro: void
S48_UNSAFE_SYMBOL_TO_STRING (
s48_value symbol)
— C macro: long
S48_UNSAFE_BYTE_VECTOR_LENGTH (
s48_value bytev)
— C macro: char
S48_UNSAFE_BYTE_VECTOR_REF (
s48_value bytev, long index)
— C macro: void
S48_UNSAFE_BYTE_VECTOR_SET (
s48_value bytev, long index, char byte)
— C macro: s48_value
S48_UNSAFE_SHARED_BINDING_REF (
s48_value shared_binding)
— C macro: int
S48_UNSAFE_SHARED_BINDING_IS_IMPORTP (
s48_value shared_binding)
— C macro: s48_value
S48_UNSAFE_SHARED_BINDING_NAME (
s48_value shared_binding)
— C macro: void
S48_UNSAFE_SHARED_BINDING_SET (
s48_value shared_binding, s48_value value)
— C macro:
type S48_UNSAFE_EXTRACT_VALUE (
s48_value bytev, type)
— C macro:
type *
S48_UNSAFE_EXTRACT_VALUE_POINTER (
s48_value bytev, type)
— C macro: void
S48_UNSAFE_SET_VALUE (
s48_value bytev, type, type value)