summaryrefslogtreecommitdiff
path: root/libguile/foreign-object.c
Commit message (Collapse)AuthorAgeFilesLines
* Add more foreign object interfacesAndy Wingo2014-04-281-10/+37
| | | | | | | | | | | | | | | | | | | | | | | * libguile/foreign-object.c: * libguile/foreign-object.h (scm_make_foreign_object_1) (scm_make_foreign_object_2, scm_make_foreign_object_3) (scm_make_foreign_object_n): Change to take void * arguments, and to add a comment to the header indicating that these are convenience constructors. * libguile/foreign-object.c: * libguile/foreign-object.h (scm_foreign_object_unsigned_ref) (scm_foreign_object_unsigned_set_x): New functions, equivalent to the old scm_foreign_object_ref and scm_foreign_object_set_x. * libguile/foreign-object.c: * libguile/foreign-object.h (scm_foreign_object_signed_ref) (scm_foreign_object_signed_set_x): New functions taking scm_t_signed_bits. * libguile/foreign-object.c: * libguile/foreign-object.h (scm_foreign_object_ref) (scm_foreign_object_set_x): New functions that take void*.
* Avoid non-constant struct initializersAndy Wingo2014-04-281-2/+9
| | | | | * libguile/foreign-object.c (scm_make_foreign_object_2): (scm_make_foreign_object_3): Avoid non-constant struct initializers.
* Add scm_make_foreign_object_0; optimize scm_make_foreign_object_n.Andy Wingo2014-04-281-1/+9
| | | | | | | * libguile/foreign-object.c (scm_make_foreign_object_0): New function. (scm_make_foreign_object_n): Pre-fetch layout_chars. * libguile/foreign-object.h: Add scm_make_foreign_object_0.
* New foreign object facility, to replace SMOBsAndy Wingo2014-04-281-0/+187
* libguile/foreign-object.c: * libguile/foreign-object.h: * module/system/foreign-object.scm: * test-suite/standalone/test-foreign-object-c.c: * test-suite/standalone/test-foreign-object-scm: New files. * test-suite/standalone/Makefile.am: * module/Makefile.am: * libguile/Makefile.am: Add new files. * libguile.h: Add foreign-object.h. * libguile/init.c (scm_i_init_guile): Call scm_register_foreign_object.