While the name of the `scm_take_TAGvector ()' function is pretty
good at
suggesting that it will take control over the data pointed to by the
first argument, I find the prototype of these functions quite
misleading. IMO, instead of:
SCM scm_take_u8vector (const scm_t_uint8 *data, size_t len);
this should be:
SCM scm_take_u8vector (scm_t_uint8 *data, size_t len);
Removing the `const' qualifier provides additional semantic
information
to the compiler that could help detect misuses of these functions.
For
example, a warning would be issued for a call like:
scm_take_u8vector ("hello", 6);