Merge pull request #205 from m3rlinez/master
[mono.git] / mono / metadata / object.c
index da37e52a710c98deb89bce1aba8509a44975782c..7d562d98e23b48c2b1f3e80ddd4cb5f2b1f7930d 100644 (file)
@@ -1837,6 +1837,7 @@ mono_class_create_runtime_vtable (MonoDomain *domain, MonoClass *class, gboolean
        char *t;
        int i, vtable_slots;
        int imt_table_bytes = 0;
+       int gc_bits;
        guint32 vtable_size, class_size;
        guint32 cindex;
        gpointer iter;
@@ -1954,6 +1955,11 @@ mono_class_create_runtime_vtable (MonoDomain *domain, MonoClass *class, gboolean
 #endif
                vt->gc_descr = class->gc_descr;
 
+       gc_bits = mono_gc_get_vtable_bits (class);
+       g_assert (!(gc_bits & ~((1 << MONO_VTABLE_AVAILABLE_GC_BITS) - 1)));
+
+       vt->gc_bits = gc_bits;
+
        if (class_size) {
                /* we store the static field pointer at the end of the vtable: vt->vtable [class->vtable_size] */
                if (class->has_static_refs) {
@@ -5185,7 +5191,7 @@ mono_object_isinst_mbyref (MonoObject *obj, MonoClass *klass)
                        return obj;
        } else {
                MonoClass *oklass = vt->klass;
-               if ((oklass == mono_defaults.transparent_proxy_class))
+               if (oklass == mono_defaults.transparent_proxy_class)
                        oklass = ((MonoTransparentProxy *)obj)->remote_class->proxy_class;
 
                mono_class_setup_supertypes (klass);