Removed return value from descriptor_params_from_paramtypes.
[cacao.git] / src / vm / loader.cpp
index c509c094e08c13888c4b0e9937f8945bc714adf1..0dc53d0c0330602339dbad0aae5934ce9589e5a0 100644 (file)
@@ -1,6 +1,6 @@
 /* src/vm/loader.cpp - class loader functions
 
-   Copyright (C) 1996-2005, 2006, 2007, 2008
+   Copyright (C) 1996-2011
    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
    Copyright (C) 2009 Theobroma Systems Ltd.
 
@@ -49,6 +49,7 @@
 #include "vm/field.hpp"
 #include "vm/global.h"
 #include "vm/globals.hpp"
+#include "vm/hook.hpp"
 #include "vm/javaobjects.hpp"
 #include "vm/linker.hpp"
 #include "vm/loader.hpp"
 
 #include "vm/jit/stubs.hpp"
 
-#if defined(ENABLE_JVMTI)
-# include "native/jvmti/cacaodbg.h"
-#endif
-
 
 /* global variables ***********************************************************/
 
@@ -232,8 +229,10 @@ void loader_init(void)
        class_java_util_Vector                 = load_class_bootstrap(utf_java_util_Vector);
 
 # if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
-       class_sun_misc_Signal                  = load_class_bootstrap(utf_new_char("sun/misc/Signal"));
-       class_sun_reflect_MagicAccessorImpl    = load_class_bootstrap(utf_new_char("sun/reflect/MagicAccessorImpl"));
+       class_sun_misc_Signal                     = load_class_bootstrap(utf_new_char("sun/misc/Signal"));
+       class_sun_reflect_MagicAccessorImpl       = load_class_bootstrap(utf_new_char("sun/reflect/MagicAccessorImpl"));
+       class_sun_reflect_MethodAccessorImpl      = load_class_bootstrap(utf_new_char("sun/reflect/MethodAccessorImpl"));
+       class_sun_reflect_ConstructorAccessorImpl = load_class_bootstrap(utf_new_char("sun/reflect/ConstructorAccessorImpl"));
 # endif
 
        arrayclass_java_lang_Object =
@@ -1177,12 +1176,6 @@ classinfo *load_class_from_classloader(utf *name, classloader_t *cl)
                        printf("]\n");
                }
 
-#if defined(ENABLE_JVMTI)
-               /* fire Class Load JVMTI event */
-               if (jvmti) jvmti_ClassLoadPrepare(false, c);
-#endif
-
-
                return c;
        } 
 
@@ -1600,7 +1593,6 @@ static bool load_class_from_classbuffer_intern(classbuffer *cb)
        /* allocate space for the parsed descriptors */
 
        descriptor_pool_alloc_parsed_descriptors(descpool);
-       c->parseddescs = (u1*) descriptor_pool_get_parsed_descriptors(descpool, &(c->parseddescsize));
 
 #if defined(ENABLE_STATISTICS)
        if (opt_stat) {
@@ -1972,18 +1964,14 @@ classinfo *load_class_from_classbuffer(classbuffer *cb)
 
        c->state = (c->state & ~CLASS_LOADING) | CLASS_LOADED;
 
-#if defined(ENABLE_JVMTI)
-       /* fire Class Prepare JVMTI event */
-
-       if (jvmti)
-               jvmti_ClassLoadPrepare(true, c);
-#endif
-
 #if !defined(NDEBUG)
        if (loadverbose)
                log_message_class("Loading done class: ", c);
 #endif
 
+       // Hook point just after a class was loaded.
+       Hook::class_loaded(c);
+
        return c;
 }
 
@@ -2149,8 +2137,7 @@ classinfo *load_newly_created_array(classinfo *c, classloader_t *loader)
 
        /* parse the descriptor to get the register allocation */
 
-       if (!descriptor_params_from_paramtypes(clonedesc, clone->flags))
-               return false;
+       descriptor_params_from_paramtypes(clonedesc, clone->flags);
 
        clone->code = NativeStub::generate(clone, BUILTIN_clone);
 
@@ -2159,8 +2146,6 @@ classinfo *load_newly_created_array(classinfo *c, classloader_t *loader)
        /* array classes are not loaded from class files */
 
        c->state          |= CLASS_LOADED;
-       c->parseddescs    = (u1 *) clonedesc;
-       c->parseddescsize = sizeof(methodinfo);
        c->classrefs      = classrefs;
        c->classrefcount  = 1;