mono/mono — pull request #1457 by evincarofautumn (2014-12-15 23:20:16+00:00)
Title: Refactor weak-reference handling code in SGen

There are a few tables of GC handle data in `gc.c`, whose information was being duplicated by the hash tables in `sgen-fin-weak-hash.c`. Removing these hash tables and using the handle table directly is both simpler and considerably more efficient.

To do:

* Reinstate the segregation of weak links by minor vs. major heap
* Remove the need to make the GC lock recursive

CC @schani