mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-24 12:20:20 +02:00
Add more foreign object interfaces
* 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*.
This commit is contained in:
parent
682a55d59b
commit
4b8ce7c752
3 changed files with 62 additions and 23 deletions
|
@ -38,8 +38,7 @@ enum
|
|||
static void
|
||||
finalizer (SCM obj)
|
||||
{
|
||||
scm_t_bits addr = scm_foreign_object_ref (obj, CSTR_SLOT_ADDR);
|
||||
free ((void *) addr);
|
||||
free (scm_foreign_object_ref (obj, CSTR_SLOT_ADDR));
|
||||
}
|
||||
|
||||
static SCM
|
||||
|
@ -50,7 +49,7 @@ make_cstr_from_static (SCM type, const char *str)
|
|||
if (!ours)
|
||||
abort ();
|
||||
|
||||
return scm_make_foreign_object_2 (type, (scm_t_bits) ours, strlen (ours));
|
||||
return scm_make_foreign_object_2 (type, ours, (void *) strlen (ours));
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -59,8 +58,8 @@ cstr_equals_static_p (SCM cstr, const char *str)
|
|||
const char *addr;
|
||||
size_t len;
|
||||
|
||||
addr = (const char *) scm_foreign_object_ref (cstr, CSTR_SLOT_ADDR);
|
||||
len = scm_foreign_object_ref (cstr, CSTR_SLOT_LEN);
|
||||
addr = scm_foreign_object_ref (cstr, CSTR_SLOT_ADDR);
|
||||
len = scm_foreign_object_unsigned_ref (cstr, CSTR_SLOT_LEN);
|
||||
|
||||
if (strlen (str) != len)
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue