On 7 November 2012 11:09, Camillo Bruni <[email protected]> wrote: > just never forget that we have a moving GC! ;) so directly passing references > to native function can be quite dangerous! >
i hope LZ4 written in a good way, which doesn't requires you to keep a valid pointer to a buffer once it return(s) from LZ4 function. > Otherwise you could first manually adjust the start address by writing > the corresponding ASM code ;) then run the C callout. I should check if > we already have a proper helper method for that. > @Mariano, i described the trick how you can do that in another reply. This is trivial to do with ASM code, the non-trivial part is how to "formally" express that in callout .. which will turn it from being "cheat" into "feature" :) Of course, if that actually necessary at all. IMO, cheat is fine. > > On 2012-11-07, at 14:33, Mariano Martinez Peck <[email protected]> wrote: > >> Hi Igor. I wonder if I can do the following. >> I have to pass a ByteArray to a function that expects an already malloced >> char*. >> So far it is working fine. Now...what I would like is from the image side >> to allocate a ByteArray of size + 4. I need to reserve the first 4 bytes of >> the ByteArray for something. But the library I am calling doesn't let me >> specify where to start from that char*. >> So...can I cheat? I mean, can I allocate ByteArray+4 in the image, but when >> passing it as an argument somehow say "ok, take this ByteArray but think >> the the beginning is the byte 4" ? >> or something like that ? >> >> Thanks! >> >> -- >> Mariano >> http://marianopeck.wordpress.com > > -- Best regards, Igor Stasenko.
