X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvmcore%2Flinker.c;h=37e8daeb7d362077aa0b5ea88a392d0b2dea373e;hb=7659949229c634784f7d27aa8b679fdd4c8351ab;hp=6fa56f69ab5b878de6ab3618c194e4cf2439855c;hpb=ebb448e2a77afa30d719a056c58e548bf9985b7f;p=cacao.git diff --git a/src/vmcore/linker.c b/src/vmcore/linker.c index 6fa56f69a..37e8daeb7 100644 --- a/src/vmcore/linker.c +++ b/src/vmcore/linker.c @@ -41,7 +41,7 @@ #include "vm/access.h" #include "vm/array.h" #include "vm/exceptions.h" -#include "vm/primitive.h" +#include "vm/primitive.hpp" #include "vm/stringlocal.h" #include "vm/vm.h" @@ -268,7 +268,7 @@ void linker_init(void) if (!link_class(class_java_lang_Throwable)) vm_abort("linker_init: linking failed"); -#if defined(WITH_CLASSPATH_GNU) +#if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH) if (!link_class(class_java_lang_VMSystem)) vm_abort("linker_init: linking failed"); @@ -305,7 +305,7 @@ void linker_init(void) if (!link_class(class_java_lang_reflect_Method)) vm_abort("linker_init: linking failed"); -# if defined(WITH_CLASSPATH_GNU) +# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH) if (!link_class(class_java_lang_reflect_VMConstructor)) vm_abort("linker_init: linking failed"); @@ -325,7 +325,7 @@ void linker_init(void) if (!link_class(class_java_util_HashMap)) vm_abort("linker_init: linking failed"); -# if defined(WITH_CLASSPATH_SUN) +# if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK) if (!link_class(class_sun_reflect_MagicAccessorImpl)) vm_abort("linker_init: linking failed"); # endif @@ -523,6 +523,15 @@ static bool linker_overwrite_method(methodinfo *mg, if ((ms->flags & ACC_METHOD_IMPLEMENTED) && ms->name != utf_init) { do { + +#if defined(ENABLE_TLH) + if (mg->flags & ACC_METHOD_MONOMORPHY_USED) { + printf("%s/%s is evil! the siner is %s/%s\n", mg->clazz->name->text, mg->name->text, + ms->clazz->name->text, ms->name->text); + ms->flags |= ACC_METHOD_PARENT_MONOMORPHY_USED; + } +#endif + if (mg->flags & ACC_METHOD_IMPLEMENTED) { /* this adds another implementation */ @@ -828,7 +837,7 @@ static classinfo *link_class_intern(classinfo *c) (interfacetablelength - 1) * (interfacetablelength > 1)); c->vftbl = v; - v->class = c; + v->clazz = c; v->vftbllength = vftbllength; v->interfacetablelength = interfacetablelength; v->arraydesc = arraydesc; @@ -1176,10 +1185,6 @@ static void linker_compute_subclasses(classinfo *c) { LOCK_MONITOR_ENTER(linker_classrenumber_lock); -#if 0 && defined(ENABLE_THREADS) && !defined(DISABLE_GC) - threads_stopworld(); -#endif - if (!(c->flags & ACC_INTERFACE)) { c->nextsub = NULL; c->sub = NULL; @@ -1197,10 +1202,6 @@ static void linker_compute_subclasses(classinfo *c) linker_compute_class_values(class_java_lang_Object); LOCK_MONITOR_EXIT(linker_classrenumber_lock); - -#if 0 && defined(ENABLE_THREADS) && !defined(DISABLE_GC) - threads_startworld(); -#endif }