PR163: descriptor_params_from_paramtypes is protected by a mutex now (per descriptor...
[cacao.git] / src / vm / loader.cpp
index de0cae192a481d3e572d6a17a01a454f6af30ff9..391fb71b5c7ace540084bbd44e66185e4939d760 100644 (file)
@@ -1593,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) {
@@ -2120,6 +2119,7 @@ classinfo *load_newly_created_array(classinfo *c, classloader_t *loader)
        clonedesc->paramslots = 0;
        clonedesc->paramtypes[0].classref = classrefs + 0;
        clonedesc->params = NULL;
+       clonedesc->pool_lock = NULL;
 
        /* create methodinfo */
 
@@ -2138,8 +2138,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);
 
@@ -2148,8 +2147,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;