1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 17:50:29 +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:
Ludovic Courtès 2010-07-26 19:36:03 +02:00
parent d4149a510e
commit 17fc9efecb
4 changed files with 25 additions and 0 deletions

View file

@ -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"