[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Passing C pointers through guile
From: |
Ludovic Courtès |
Subject: |
Re: Passing C pointers through guile |
Date: |
Sat, 05 Jul 2008 18:59:26 +0200 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) |
Hi,
"Maciek Godek" <address@hidden> writes:
> is there any portable and recommended way for passing C pointers around
> in guile environment?
> I think of something like scm_to_ptr (analogous to scm_to_int etc.).
> Certainly such a value would be completely useless for the interpreter.
> One can achieve simillar functionality using the aforementioned
> scm_to_int (keeping track on the word length of the build target),
> but it seems rather unnatural.
If the goal is to make a C object pointed to by some pointer available
to Scheme functions, the recommended (and simplest) way is to use a
"SMOB" (see the manual for details). In practice, SMOBs incur some
storage overhead because they hold 4 machines words, while you may only
need one.
Another possibility is to use a "uo" field in a struct: it allows you to
have a struct field holding a machine word inaccessible to Scheme
functions (see the "Vtables" node of the manual).
Hope this helps,
Ludovic.
Re: Passing C pointers through guile, Kjetil S. Matheussen, 2008/07/10