unsafe.texi 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. @node Unsafe C macros
  2. @section Unsafe C macros
  3. All of the C functions & macros described previously verify that their
  4. arguments have the appropriate types and lie in the appropriate ranges.
  5. The following macros are identical to their safe counterparts, except
  6. that the unsafe variants, by contrast, do @emph{not} verify coherency
  7. of their arguments. They are provided for the purpose of writing more
  8. efficient code; their general use is not recommended.
  9. @deftypefn {C macro} char S48_UNSAFE_EXTRACT_CHAR (s48_value @var{char})
  10. @deftypefnx {C macro} {char *} S48_UNSAFE_EXTRACT_STRING (s48_value @var{string})
  11. @deftypefnx {C macro} long S48_UNSAFE_EXTRACT_INTEGER (s48_value @var{integer})
  12. @deftypefnx {C macro} double S48_UNSAFE_EXTRACT_DOUBLE (s48_value @var{double})
  13. @deftypefnx {C macro} long S48_UNSAFE_EXTRACT_FIXNUM (s48_value @var{fixnum})
  14. @deftypefnx {C macro} s48_value S48_UNSAFE_ENTER_FIXNUM (long @var{integer})
  15. @end deftypefn
  16. @*
  17. @deftypefn {C macro} s48_value S48_UNSAFE_CAR (s48_value @var{pair})
  18. @deftypefnx {C macro} s48_value S48_UNSAFE_CDR (s48_value @var{pair})
  19. @deftypefnx {C macro} void S48_UNSAFE_SET_CAR (s48_value @var{pair}, s48_value @var{value})
  20. @deftypefnx {C macro} void S48_UNSAFE_SET_CDR (s48_value @var{pair}, s48_value @var{value})
  21. @end deftypefn
  22. @*
  23. @deftypefn {C macro} long S48_UNSAFE_VECTOR_LENGTH (s48_value @var{vector})
  24. @deftypefnx {C macro} s48_value S48_UNSAFE_VECTOR_REF (s48_value @var{vector}, long @var{index})
  25. @deftypefnx {C macro} void S48_UNSAFE_VECTOR_SET (s48_value @var{vector}, long @var{index}, s48_value @var{value})
  26. @end deftypefn
  27. @*
  28. @deftypefn {C macro} long S48_UNSAFE_STRING_LENGTH (s48_value @var{string})
  29. @deftypefnx {C macro} char S48_UNSAFE_STRING_REF (s48_value @var{string}, long @var{index})
  30. @deftypefnx {C macro} void S48_UNSAFE_STRING_SET (s48_value @var{string}, long @var{index}, char @var{char})
  31. @end deftypefn
  32. @*
  33. @deftypefn {C macro} void S48_UNSAFE_SYMBOL_TO_STRING (s48_value @var{symbol})
  34. @end deftypefn
  35. @*
  36. @deftypefn {C macro} long S48_UNSAFE_BYTE_VECTOR_LENGTH (s48_value @var{bytev})
  37. @deftypefnx {C macro} char S48_UNSAFE_BYTE_VECTOR_REF (s48_value @var{bytev}, long @var{index})
  38. @deftypefnx {C macro} void S48_UNSAFE_BYTE_VECTOR_SET (s48_value @var{bytev}, long @var{index}, char @var{byte})
  39. @end deftypefn
  40. @*
  41. @deftypefn {C macro} s48_value S48_UNSAFE_SHARED_BINDING_REF (s48_value @var{shared_binding})
  42. @deftypefnx {C macro} int S48_UNSAFE_SHARED_BINDING_IS_IMPORTP (s48_value @var{shared_binding})
  43. @deftypefnx {C macro} s48_value S48_UNSAFE_SHARED_BINDING_NAME (s48_value @var{shared_binding})
  44. @deftypefnx {C macro} void S48_UNSAFE_SHARED_BINDING_SET (s48_value @var{shared_binding}, s48_value @var{value})
  45. @end deftypefn
  46. @*
  47. @deftypefn {C macro} @var{type} S48_UNSAFE_EXTRACT_VALUE (s48_value @var{bytev}, @var{type})
  48. @deftypefnx {C macro} {@var{type} *} S48_UNSAFE_EXTRACT_VALUE_POINTER (s48_value @var{bytev}, @var{type})
  49. @deftypefnx {C macro} void S48_UNSAFE_SET_VALUE (s48_value @var{bytev}, @var{type}, @var{type} @var{value})
  50. @end deftypefn