mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 17:20:29 +02:00
add registry of vector constructors, make-generalized-vector
* libguile/generalized-vectors.h: * libguile/generalized-vectors.c: Add a registry of vector constructors. (scm_make_generalized_vector): New public function, constructs a vector of a given type. * libguile/bitvectors.c: * libguile/bytevectors.c: * libguile/srfi-4.c: * libguile/strings.c: * libguile/vectors.c: Register vector constructors. * libguile/extensions.c (scm_init_extensions): No need to NULL the list of registered extensions here, the static init does it for us. Allows scm_c_register_extension to be called before scm_init_extensions. * libguile/init.c (scm_i_init_guile): Move array initialization earlier, so e.g. scm_init_strings has access to a valid list of array element types when registering its vector constructor.
This commit is contained in:
parent
476b894c71
commit
f45eccffa7
9 changed files with 85 additions and 14 deletions
|
@ -29,6 +29,7 @@
|
|||
#include "libguile/chars.h"
|
||||
#include "libguile/root.h"
|
||||
#include "libguile/strings.h"
|
||||
#include "libguile/generalized-vectors.h"
|
||||
#include "libguile/deprecation.h"
|
||||
#include "libguile/validate.h"
|
||||
#include "libguile/dynwind.h"
|
||||
|
@ -1124,6 +1125,7 @@ string_get_handle (SCM v, scm_t_array_handle *h)
|
|||
SCM_ARRAY_IMPLEMENTATION (scm_tc7_string, 0x7f & ~2,
|
||||
string_handle_ref, string_handle_set,
|
||||
string_get_handle);
|
||||
SCM_VECTOR_IMPLEMENTATION (SCM_ARRAY_ELEMENT_TYPE_CHAR, scm_make_string);
|
||||
|
||||
void
|
||||
scm_init_strings ()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue