[sgen] Incomplete bridge weak reference fix.
authorMark Probst <mark.probst@gmail.com>
Tue, 18 Sep 2012 13:30:24 +0000 (15:30 +0200)
committerMark Probst <mark.probst@gmail.com>
Wed, 3 Oct 2012 17:05:56 +0000 (19:05 +0200)
commit572bd8b01721c4cf423ce1d66f96a195c54f983a
treede44ead400898358eb9937d012ee2a91e2dad87c
parenta6fc85be67fbea3139f9a2d508ec1d1728a43cf5
[sgen] Incomplete bridge weak reference fix.

This is an incomplete fix for #6715.  After bridge processing we
iterate through all weak references again, this time nulling those
that point to bridged objects that were diagnosed as dead by the
bridge.

As of now it's inefficient because it uses linear search for each weak
reference lookup, as well as incomplete because the code runs while
the world is running, so the weak links might be accessed before they
are consistent.
mono/metadata/sgen-bridge.c
mono/metadata/sgen-bridge.h
mono/metadata/sgen-fin-weak-hash.c
mono/metadata/sgen-gc.c
mono/metadata/sgen-gc.h