diff -BburN svn/gc_gen/src/finalizer_weakref/finalizer_weakref_metadata.h vm.new/gc_gen/src/finalizer_weakref/finalizer_weakref_metadata.h --- svn/gc_gen/src/finalizer_weakref/finalizer_weakref_metadata.h 2007-07-19 22:59:28.000000000 +0800 +++ vm.new/gc_gen/src/finalizer_weakref/finalizer_weakref_metadata.h 2007-07-19 23:03:31.000000000 +0800 @@ -104,7 +104,8 @@ Finref_Metadata *metadata = gc->finref_metadata; assert(!metadata->finalizable_obj_set); - metadata->finalizable_obj_set = pool_get_entry(metadata->free_pool); + metadata->finalizable_obj_set = finref_get_free_block(gc); + assert(metadata->finalizable_obj_set); } /* called after loop of recording finalizable objects */ inline void gc_put_finalizable_objects(GC *gc) @@ -121,7 +122,8 @@ Finref_Metadata *metadata = gc->finref_metadata; assert(!metadata->repset); - metadata->repset = pool_get_entry(metadata->free_pool); + metadata->repset = finref_get_free_block(gc); + assert(metadata->repset); } /* called after loop of recording repointed reference */ inline void finref_put_repset(GC *gc)