Merge to subtype-trunk (manually: src/vm/linker.hpp, src/vm/vftbl.hpp)
[cacao.git] / src / vm / class.cpp
index 1305fc0a288a9d401a55ab8f1d9577a375fdacdf..0aa5f21233972cf757f8f2f0f4b8c7285d38a7a7 100644 (file)
@@ -1471,7 +1471,16 @@ bool class_isanysubclass(classinfo *sub, classinfo *super)
                if (sub->flags & ACC_INTERFACE)
                        return (super == class_java_lang_Object);
 
+#if USES_NEW_SUBTYPE
                result = fast_subtype_check(sub->vftbl, super->vftbl);
+#else
+               LOCK_CLASSRENUMBER_LOCK;
+
+               diffval = sub->vftbl->baseval - super->vftbl->baseval;
+               result  = diffval <= (uint32_t) super->vftbl->diffval;
+
+               UNLOCK_CLASSRENUMBER_LOCK;
+#endif
        }
 
        return result;