* src/vmcore/resolve.c: Moved back to src/vm/resolve.c.
[cacao.git] / src / vmcore / loader.c
index c1bf1f706f9ae9b7004bfa339df35eebd84fa53a..128581558f7fcb28e1a4d9c3ad683670b37088f7 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: loader.c 7246 2007-01-29 18:49:05Z twisti $
+   $Id: loader.c 7464 2007-03-06 00:26:31Z edwin $
 
 */
 
@@ -49,8 +49,7 @@
 #include "vm/stringlocal.h"
 #include "vm/vm.h"
 
-#include "vm/jit/asmpart.h"
-#include "vm/jit/codegen-common.h"
+#include "vm/jit_interface.h"
 
 #if defined(ENABLE_JAVASE)
 # include "vmcore/annotation.h"
@@ -1096,10 +1095,6 @@ static bool loader_load_method(classbuffer *cb, methodinfo *m,
 
        c = cb->class;
 
-#if defined(ENABLE_THREADS)
-       lock_init_object_lock(&m->header);
-#endif
-
 #if defined(ENABLE_STATISTICS)
        if (opt_stat)
                count_all_methods++;
@@ -1425,6 +1420,12 @@ static bool loader_load_method(classbuffer *cb, methodinfo *m,
                return false;
        }
 
+       /* initialize the hit countdown field */
+
+#if defined(ENABLE_REPLACEMENT)
+       m->hitcountdown = METHOD_INITIAL_HIT_COUNTDOWN;
+#endif
+
        /* everything was ok */
 
        return true;
@@ -1927,7 +1928,10 @@ classinfo *load_class_from_classbuffer(classbuffer *cb)
        if (!suck_check_classbuffer_size(cb, 2))
                goto return_exception;
 
-       c->flags = suck_u2(cb);
+       /* We OR the flags here, as we set already some flags in
+          class_create_classinfo. */
+
+       c->flags |= suck_u2(cb);
 
        /* check ACC flags consistency */
 
@@ -2499,11 +2503,9 @@ classinfo *load_newly_created_array(classinfo *c, java_objectheader *loader)
 
        c->super.cls = class_java_lang_Object;
 
-    c->interfacescount = 0;
-       c->interfaces = NULL;
-
 #if defined(ENABLE_JAVASE)
-    c->interfaces = MNEW(classref_or_classinfo, 2);
+       c->interfacescount = 2;
+    c->interfaces      = MNEW(classref_or_classinfo, 2);
 
        if (opt_eager) {
                classinfo *tc;
@@ -2522,6 +2524,11 @@ classinfo *load_newly_created_array(classinfo *c, java_objectheader *loader)
                c->interfaces[0].cls = class_java_lang_Cloneable;
                c->interfaces[1].cls = class_java_io_Serializable;
        }
+#elif defined(ENABLE_JAVAME_CLDC1_1)
+       c->interfacescount = 0;
+       c->interfaces      = NULL;
+#else
+#error unknow Java configuration
 #endif
 
        c->methodscount = 1;
@@ -2550,10 +2557,6 @@ classinfo *load_newly_created_array(classinfo *c, java_objectheader *loader)
        clone = c->methods;
        MSET(clone, 0, methodinfo, 1);
 
-#if defined(ENABLE_THREADS)
-       lock_init_object_lock(&clone->header);
-#endif
-
        /* ATTENTION: if you delete the ACC_NATIVE below, set
           clone->maxlocals=1 (interpreter related) */