[Local GC] Move Weak Reference finalization out of the GC (dotnet/coreclr#10676)
authorSean Gillespie <sean@swgillespie.me>
Wed, 5 Apr 2017 16:57:50 +0000 (09:57 -0700)
committerGitHub <noreply@github.com>
Wed, 5 Apr 2017 16:57:50 +0000 (09:57 -0700)
commit9a9d119bb3c82b16f7575ac9f6e503b6e5bce155
tree25197b47dea1862d5d872e69782e258073f1985d
parent35bafb40d775fcf86d8e5dcc337f81c74d7988d3
[Local GC] Move Weak Reference finalization out of the GC (dotnet/coreclr#10676)

* [Local GC] Move Weak Reference finalization out of the GC

* Address two issues:
  1) Use GetGCSafeMethodTable instead of GetMethodTable, so that the
     mark bit is correctly masked off the object's method table pointer,
  2) Address code review feedback by re-inserting a missed call to
     GetCanonicalMethodTable and rename the new API to EagerFinalized to
     better illustrate its broader purpose.

* Repair the GC sample

Commit migrated from https://github.com/dotnet/coreclr/commit/be8504bd8a63962c84567990f0b84019f299166c
src/coreclr/src/gc/env/gcenv.ee.h
src/coreclr/src/gc/gc.cpp
src/coreclr/src/gc/gc.h
src/coreclr/src/gc/gcenv.ee.standalone.inl
src/coreclr/src/gc/gcinterface.ee.h
src/coreclr/src/gc/sample/gcenv.ee.cpp
src/coreclr/src/vm/gcenv.ee.cpp
src/coreclr/src/vm/gcenv.ee.h