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
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe