jvmpiSetThreadLocalStorage puts a pointer to local storage instances there:
        KTHREAD(get_data)(jt)->jvmpiData = ptr;
but that field:
        threadData.jvmpiData
is not scanned for pointers neither here
        liveThreadWalker [gc-refs.c]
which only looks into 
        thread_data->jnireferences
nor anywhere else.

the letters "jvmpiData" only occur in 3 places in source distribution:

./kaffe/jvmpi/         
    431:jvmpi_kaffe.c  jvmpiGetThreadLocalStorage
    655:jvmpi_kaffe.c  jvmpiSetThreadLocalStorage
./kaffe/kaffevm/       
    25:threadData.h    declaration

this looks like a but to me, since if that storage would hold a last pointer to 
an object,
that object will be reclaimed during garbage collect.

test case for that should be obvious.

I myself is not a java developer, I even have no kaffe binaries, so I can't run 
it.

In case this is NOT a bug, please provide a short explanation to "how that can 
work".

Alexander Petrossian, Moscow, Russia.


_______________________________________________
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to