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