mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-18 09:40:25 +02:00
Add dereference-pointer' to
(system foreign)'.
* libguile/foreign.c (scm_dereference_pointer): New function. * libguile/foreign.h (scm_dereference_pointer): New declaration. * module/system/foreign.scm (dereference-pointer): Likewise. * test-suite/tests/foreign.test ("foreign<->bytevector")["dereference-pointer"]: New test.
This commit is contained in:
parent
d4149a510e
commit
17fc9efecb
4 changed files with 25 additions and 0 deletions
|
@ -162,6 +162,19 @@ SCM_DEFINE (scm_foreign_address, "foreign-address", 1, 0, 0,
|
|||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
SCM_DEFINE (scm_dereference_pointer, "dereference-pointer", 1, 0, 0,
|
||||
(SCM foreign),
|
||||
"Return the a foreign object representing the pointer "
|
||||
"pointed to by @var{foreign}.")
|
||||
#define FUNC_NAME s_scm_dereference_pointer
|
||||
{
|
||||
SCM_VALIDATE_FOREIGN (1, foreign);
|
||||
|
||||
return scm_take_foreign_pointer (* (void **) SCM_FOREIGN_POINTER (foreign),
|
||||
NULL);
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
SCM_DEFINE (scm_foreign_to_bytevector, "foreign->bytevector", 2, 2, 0,
|
||||
(SCM foreign, SCM len, SCM offset, SCM uvec_type),
|
||||
"Return a bytevector aliasing the memory pointed to by\n"
|
||||
|
|
|
@ -69,6 +69,7 @@ SCM_API SCM scm_foreign_set_finalizer_x (SCM foreign, SCM finalizer);
|
|||
SCM_API SCM scm_bytevector_to_foreign (SCM bv, SCM offset, SCM len);
|
||||
|
||||
SCM_INTERNAL SCM scm_make_pointer (SCM address, SCM finalizer);
|
||||
SCM_INTERNAL SCM scm_dereference_pointer (SCM pointer);
|
||||
SCM_INTERNAL void scm_i_foreign_print (SCM foreign, SCM port,
|
||||
scm_print_state *pstate);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue