You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2007/05/16 14:08:28 UTC

svn commit: r538554 - /harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/java_type.cpp

Author: varlax
Date: Wed May 16 05:08:28 2007
New Revision: 538554

URL: http://svn.apache.org/viewvc?view=rev&rev=538554
Log:
Applied HARMONY-3840 [drlvm][classloader] 'clss' field is never cached for TypeDesc struct

Modified:
    harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/java_type.cpp

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/java_type.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/java_type.cpp?view=diff&rev=538554&r1=538553&r2=538554
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/java_type.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/java_type.cpp Wed May 16 05:08:28 2007
@@ -101,7 +101,7 @@
         c->get_class_loader()->UnlockTypesCache();
         return *tdres;
     }
-    TypeDesc* td = new TypeDesc(K_Object, NULL, NULL, cname, c->get_class_loader(), NULL);
+    TypeDesc* td = new TypeDesc(K_Object, NULL, NULL, cname, c->get_class_loader(), c);
     assert(td);
     c->get_class_loader()->GetJavaTypes()->Insert(cname, td);
     c->get_class_loader()->UnlockTypesCache();
@@ -115,7 +115,6 @@
     if (clss) return clss; // class already loaded
     Global_Env* env = VM_Global_State::loader_env;
     Class* element_clss;
-    Class* c;
 
     switch (get_kind()) {
     case K_S1: return env->Byte_Class;
@@ -132,13 +131,14 @@
         assert (name);
         // FIXME: better to use LoadVerifyAndPrepareClass here - but this results in Recursive resolution collision in StartLoadingClass
         //c = loader->LoadVerifyAndPrepareClass(env, name);
-        c = loader->LoadClass(env, name);
-        return c;
+        clss = loader->LoadClass(env, name);
+        return clss;
     case K_Vector:
         assert (component_type);
         element_clss = component_type->load_type_desc();
         if (!element_clss) return NULL;
-        return resolve_class_array_of_class1(env, element_clss);
+        clss = resolve_class_array_of_class1(env, element_clss);
+        return clss;
     default:
         // All other types are not Java types, so fail
         ABORT("Unexpected kind");
@@ -167,4 +167,5 @@
         return td;
     }
 }
+