chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Basic FFI Principle in Chicken


From: Kristian Lein-Mathisen
Subject: Re: [Chicken-users] Basic FFI Principle in Chicken
Date: Sat, 7 Sep 2013 12:48:27 +0200


Hey Chris,

I though I'd mention the srfi-4 unit and it's u32vector. This may come in handy for your particular struct. While make-blobs are great for allocating managed memory for arbitrary structs, you can sometimes use make-s32vector, for example, where the struct is basically an array like yours.

Note that this may not be a good idea if your struct members are just using "int" because you wouldn't know if it's a s32vector or a s64vector. Also, your foreign-type would go from (pointer (struct "color")) to a u32vector which means you may have to cast it to a (struct color*) in C. However, it does make extracting the individual color-components much easier than having to work with raw blobs.

Because size of an "int" can generally be either 32 or 64-bit depending on your architecture, the srfi-4 vectors are possible better suited for floats and doubles where the sizes are all set. It's worth knowing about them though.

Cheers,
K.


On Fri, Sep 6, 2013 at 12:23 PM, Chris Mueller <address@hidden> wrote:
On 06.09.2013 09:07, Peter Bex wrote:
On Fri, Sep 06, 2013 at 08:52:08AM +0200, Chris Mueller wrote:
Hope its not too basic for you. :)

Never, user questions are what this mailing list is for!  I hope my
answers make a little sense.

Definitely! This is very helpful. I will immediately check and use this.

Now it also makes sense for me what's one of the intensions behind "blobs" in the documentation/wiki. Never thought it can be used for
memory allocation in C interfaces :)

Thanks

Chris


_______________________________________________
Chicken-users mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/chicken-users


reply via email to

[Prev in Thread] Current Thread [Next in Thread]