Fix Crash with ObjectSpace.define_finalizer(obj)
Fix Crash with ObjectSpace.define_finalizer(obj)

This code produces a crash:

    class Foo
      def __finalize__
      end
    end
    foo = Foo.new

    ObjectSpace.define_finalizer(foo)
    GC.run(true)

When run:

    ---------------------------------------------
    CRASH: A fatal error has occurred.

    Backtrace:
    ./bin/rbx[0x4a5370]
    /lib/x86_64-linux-gnu/libc.so.6(+0x364a0)[0x7f5ab242e4a0]
    ./bin/rbx(_ZN8rubinius7BakerGC15walk_finalizersEv+0x69)[0x619bd9]
    ./bin/rbx(_ZN8rubinius7BakerGC7collectERNS_6GCDataEPNS_17YoungCollectStatsE+0x3a1)[0x61a031]
    ./bin/rbx(_ZN8rubinius12ObjectMemory13collect_youngERNS_6GCDataEPNS_17YoungCollectStatsE+0x66)[0x549de6]
    ./bin/rbx(_ZN8rubinius12ObjectMemory13collect_maybeEPNS_5StateERNS_11GCTokenImplEPNS_9CallFrameE+0x160)[0x54a170]
    ./bin/rbx(_ZN8rubinius2VM13collect_maybeERNS_11GCTokenImplEPNS_9CallFrameE+0x3f)[0x57f2ff]
    ./bin/rbx(_ZN8rubinius6System11vm_gc_startEPNS_5StateERNS_11GCTokenImplEPNS_6ObjectEPNS_9CallFrameE+0x31)[0x5e5091]
    ./bin/rbx(_ZN8rubinius10Primitives11vm_gc_startEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0xcf)[0x50e20f]
    ...

ObjectSpace.define_finalizer stores cTrue as a finalizer placeholder in this
case. And when GC runs, it doesn't consider there may be immediates and
dereferences that cTrue. Thereby, a crash is waiting for you. :p

Azizou/rubinius,kachick/rubinius,ngpestelos/rubinius,heftig/rubinius,heftig/rubinius,jemc/rubinius,Azizou/rubinius,pH14/rubinius,benlovell/rubinius,digitalextremist/rubinius,jemc/rubinius,heftig/rubinius,pH14/rubinius,pH14/rubinius,jsyeo/rubinius,mlarraz/rubinius,kachick/rubinius,mlarraz/rubinius,Wirachmat/rubinius,kachick/rubinius,Azizou/rubinius,ngpestelos/rubinius,Wirachmat/rubinius,ngpestelos/rubinius,sferik/rubinius,jsyeo/rubinius,ruipserra/rubinius,sferik/rubinius,digitalextremist/rubinius,heftig/rubinius,benlovell/rubinius,kachick/rubinius,benlovell/rubinius,Wirachmat/rubinius,kachick/rubinius,heftig/rubinius,Wirachmat/rubinius,ruipserra/rubinius,Wirachmat/rubinius,dblock/rubinius,dblock/rubinius,sferik/rubinius,kachick/rubinius,jsyeo/rubinius,ruipserra/rubinius,Wirachmat/rubinius,pH14/rubinius,jemc/rubinius,benlovell/rubinius,mlarraz/rubinius,digitalextremist/rubinius,Azizou/rubinius,mlarraz/rubinius,dblock/rubinius,jsyeo/rubinius,dblock/rubinius,jemc/rubinius,kachick/rubinius,dblock/rubinius,dblock/rubinius,ruipserra/rubinius,jemc/rubinius,pH14/rubinius,ngpestelos/rubinius,mlarraz/rubinius,ngpestelos/rubinius,heftig/rubinius,sferik/rubinius,ruipserra/rubinius,kachick/rubinius,benlovell/rubinius,ngpestelos/rubinius,Azizou/rubinius,pH14/rubinius,ruipserra/rubinius,benlovell/rubinius,sferik/rubinius,jsyeo/rubinius,jsyeo/rubinius,sferik/rubinius,jemc/rubinius,Wirachmat/rubinius,digitalextremist/rubinius,digitalextremist/rubinius,heftig/rubinius,jsyeo/rubinius,sferik/rubinius,digitalextremist/rubinius,dblock/rubinius,ruipserra/rubinius,Azizou/rubinius,ngpestelos/rubinius,benlovell/rubinius,mlarraz/rubinius,jemc/rubinius,mlarraz/rubinius,digitalextremist/rubinius,Azizou/rubinius,pH14/rubinius