mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-09 21:40:33 +02:00
Add lenp parameter back to scm_vector_(writable_)elements
Also fix uses.
This commit is contained in:
parent
04c80519bf
commit
bf5b9a86bc
5 changed files with 17 additions and 14 deletions
|
@ -32,12 +32,11 @@ calls.
|
|||
|
||||
Use SCM_VECTOR_REF, SCM_VECTOR_SET and SCM_VECTOR_LENGTH instead.
|
||||
|
||||
** scm_vector_elements / scm_vector_writable_elements take a single argument that must be a vector.
|
||||
** The vector argument to scm_vector_elements / scm_vector_writable_elements must be a true vector. Handle/inc arguments have been removed.
|
||||
|
||||
Use scm_array_get_handle and scm_array_handle_elements / scm_array_handle_writable_elements on general arrays.
|
||||
Use scm_c_vector_length to get the length of a vector.
|
||||
|
||||
** scm_bitvector_elements / scm_bitvector_writable_elements take a single argument that must be a bitvector
|
||||
** The vector argument to scm_bitvector_elements / scm_bitvector_writable_elements must be a true bitvector. Handle/inc arguments have been removed.
|
||||
|
||||
Use scm_array_get_handle and scm_array_handle_bit_elements / scm_array_handle_bit_writable_elements on bit arrays.
|
||||
Use scm_array1_bit_elements (NEW) / scm_array1_bit_writable_elements (NEW) on rank-1 bit arrays.
|
||||
|
|
|
@ -6441,7 +6441,7 @@ Sets the element at position @var{idx} in the vector @var{vec} to
|
|||
@var{val}. No type or range checking is done.
|
||||
@end deftypefn
|
||||
|
||||
@deftypefn {C Function} {const SCM *} scm_vector_elements (SCM vec)
|
||||
@deftypefn {C Function} {const SCM *} scm_vector_elements (SCM vec, size_t *lenp)
|
||||
Return a pointer to the elements of @var{vec}. This pointer can only be
|
||||
used to read the elements of @var{vec}. When @var{vec} is not a vector,
|
||||
an error is signaled.
|
||||
|
@ -6452,8 +6452,8 @@ The following example shows the typical way to use this function. It
|
|||
creates a list of all elements of @var{vec} (in reverse order).
|
||||
|
||||
@example
|
||||
size_t len = scm_c_vector_length (vec);
|
||||
const SCM *elt = scm_vector_elements (vec);
|
||||
size_t len;
|
||||
const SCM *elt = scm_vector_elements (vec, &len);
|
||||
|
||||
SCM list = SCM_EOL;
|
||||
for (size_t i = 0; i < len; ++i)
|
||||
|
@ -6462,7 +6462,7 @@ for (size_t i = 0; i < len; ++i)
|
|||
|
||||
@end deftypefn
|
||||
|
||||
@deftypefn {C Function} {SCM *} scm_vector_writable_elements (SCM vec, scm_t_array_handle *handle, size_t *lenp, ssize_t *incp)
|
||||
@deftypefn {C Function} {SCM *} scm_vector_writable_elements (SCM vec, size_t *lenp)
|
||||
Like @code{scm_vector_elements} but the pointer can be used to modify
|
||||
the vector.
|
||||
|
||||
|
@ -6472,8 +6472,8 @@ The following example shows the typical way to use this function. It
|
|||
fills a vector with @code{#t} (but see @code{vector-fill!}).
|
||||
|
||||
@example
|
||||
size_t len = scm_c_vector_length (vec);
|
||||
SCM *elt = scm_vector_writable_elements (vec);
|
||||
size_t len;
|
||||
SCM *elt = scm_vector_writable_elements (vec, &len);
|
||||
|
||||
for (size_t i = 0; i < len; ++i)
|
||||
elt[i] = SCM_BOOL_T;
|
||||
|
|
|
@ -577,7 +577,7 @@ SCM_DEFINE (scm_stable_sort_x, "stable-sort!", 2, 0, 0,
|
|||
}
|
||||
|
||||
SCM temp = scm_c_make_vector (len, SCM_UNDEFINED);
|
||||
SCM *temp_elts = scm_vector_writable_elements (temp);
|
||||
SCM *temp_elts = scm_vector_writable_elements (temp, NULL);
|
||||
|
||||
scm_merge_vector_step (vec_elts, temp_elts, less, 0, len-1, inc);
|
||||
|
||||
|
|
|
@ -56,19 +56,23 @@ scm_is_vector (SCM obj)
|
|||
}
|
||||
|
||||
const SCM *
|
||||
scm_vector_elements (SCM vec)
|
||||
scm_vector_elements (SCM vec, size_t *lenp)
|
||||
#define FUNC_NAME "scm_vector_elements"
|
||||
{
|
||||
SCM_VALIDATE_VECTOR (1, vec);
|
||||
if (lenp)
|
||||
*lenp = SCM_I_VECTOR_LENGTH (vec);
|
||||
return SCM_I_VECTOR_ELTS (vec);
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
SCM *
|
||||
scm_vector_writable_elements (SCM vec)
|
||||
scm_vector_writable_elements (SCM vec, size_t *lenp)
|
||||
#define FUNC_NAME "scm_vector_writable_elements"
|
||||
{
|
||||
SCM_VALIDATE_MUTABLE_VECTOR (1, vec);
|
||||
if (lenp)
|
||||
*lenp = SCM_I_VECTOR_LENGTH (vec);
|
||||
return SCM_I_VECTOR_WELTS (vec);
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
|
|
@ -47,8 +47,8 @@ SCM_API SCM scm_c_make_vector (size_t len, SCM fill);
|
|||
SCM_API size_t scm_c_vector_length (SCM vec);
|
||||
SCM_API SCM scm_c_vector_ref (SCM vec, size_t k);
|
||||
SCM_API void scm_c_vector_set_x (SCM vec, size_t k, SCM obj);
|
||||
SCM_API const SCM *scm_vector_elements (SCM vec);
|
||||
SCM_API SCM *scm_vector_writable_elements (SCM vec);
|
||||
SCM_API const SCM *scm_vector_elements (SCM vec, size_t *lenp);
|
||||
SCM_API SCM *scm_vector_writable_elements (SCM vec, size_t *lenp);
|
||||
|
||||
#define SCM_VALIDATE_VECTOR(pos, v) \
|
||||
do { \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue