gnu.gcj.RawData vs. long

Bryce McKinlay bmckinlay@gmail.com
Mon Jul 18 16:18:00 GMT 2011


On Mon, Jul 18, 2011 at 5:08 PM, Craig Vanderborgh
<craigvanderborgh@gmail.com> wrote:
> The problem is that gnu.gcj.RawData * is not portable.  The question
> is: can I use "long" for the type instead without garbage collection
> problems?  Can my native code store the pointer value in a Java "long"
> in the CNI with impunity, or will Boehm GC think these pointers needs
> to be considered for collection?

Hi Craig.
You must use gnu.gcj.RawData* if the reference being stored points to
something allocated by the GC. The GC will not mark references held in
non-pointer types.
If it's something that was allocated outside the GC (ie, with malloc),
it should be fine to use a long.
Bryce


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /