diff src/share/vm/graal/graalCompiler.cpp @ 13375:e8c4a6ea3f77

cleaned up VMToCompiler.createResolvedJavaType
author twisti
date Tue, 17 Dec 2013 20:58:58 -0800
parents 430c9f08728d
children 606959535fd4
line wrap: on
line diff
--- a/src/share/vm/graal/graalCompiler.cpp	Tue Dec 17 21:25:27 2013 -0800
+++ b/src/share/vm/graal/graalCompiler.cpp	Tue Dec 17 20:58:58 2013 -0800
@@ -219,21 +219,17 @@
   TRACE_graal_1("GraalCompiler::print_timers");
 }
 
-Handle GraalCompiler::get_JavaType(Symbol* klass_name, TRAPS) {
-   return VMToCompiler::createUnresolvedJavaType(java_lang_String::create_from_symbol(klass_name, THREAD), THREAD);
-}
-
 Handle GraalCompiler::get_JavaTypeFromSignature(Symbol* signature, KlassHandle loading_klass, TRAPS) {
-  
   BasicType field_type = FieldType::basic_type(signature);
   // If the field is a pointer type, get the klass of the
   // field.
   if (field_type == T_OBJECT || field_type == T_ARRAY) {
-    KlassHandle handle = GraalEnv::get_klass_by_name(loading_klass, signature, false);
-    if (handle.is_null()) {
-      return get_JavaType(signature, CHECK_NH);
+    KlassHandle klass = GraalEnv::get_klass_by_name(loading_klass, signature, false);
+    if (klass.is_null()) {
+      Handle signature_string = java_lang_String::create_from_symbol(signature, CHECK_NH);
+      return VMToCompiler::createUnresolvedJavaType(signature_string, CHECK_NH);
     } else {
-      return get_JavaType(handle, CHECK_NH);
+      return createHotSpotResolvedObjectType(klass, CHECK_NH);
     }
   } else {
     return VMToCompiler::createPrimitiveJavaType(field_type, CHECK_NH);
@@ -256,7 +252,7 @@
       if (tag.is_klass()) {
         // The klass has been inserted into the constant pool
         // very recently.
-        return GraalCompiler::get_JavaType(cp->resolved_klass_at(index), CHECK_NH);
+        return GraalCompiler::createHotSpotResolvedObjectType(cp->resolved_klass_at(index), CHECK_NH);
       } else if (tag.is_symbol()) {
         klass_name = cp->symbol_at(index);
       } else {
@@ -264,50 +260,26 @@
         klass_name = cp->unresolved_klass_at(index);
       }
     }
-    return GraalCompiler::get_JavaType(klass_name, CHECK_NH);
+    Handle klass_name_string = java_lang_String::create_from_symbol(klass_name, CHECK_NH);
+    return VMToCompiler::createUnresolvedJavaType(klass_name_string, CHECK_NH);
   } else {
-    return GraalCompiler::get_JavaType(klass, CHECK_NH);
+    return GraalCompiler::createHotSpotResolvedObjectType(klass, CHECK_NH);
   }
 }
 
-Handle GraalCompiler::get_JavaType(KlassHandle klass, TRAPS) {
-  Handle name = java_lang_String::create_from_symbol(klass->name(), THREAD);
-  return createHotSpotResolvedObjectType(klass, name, CHECK_NH);
-}
-
 Handle GraalCompiler::get_JavaField(int offset, int flags, Symbol* field_name, Handle field_holder, Handle field_type, TRAPS) {
   Handle name = java_lang_String::create_from_symbol(field_name, CHECK_NH);
   return VMToCompiler::createJavaField(field_holder, name, field_type, offset, flags, false, CHECK_NH);
 }
 
-Handle GraalCompiler::createHotSpotResolvedObjectType(KlassHandle klass, Handle name, TRAPS) {
+Handle GraalCompiler::createHotSpotResolvedObjectType(KlassHandle klass, TRAPS) {
   oop java_class = klass->java_mirror();
   oop graal_mirror = java_lang_Class::graal_mirror(java_class);
   if (graal_mirror != NULL) {
     assert(graal_mirror->is_a(HotSpotResolvedObjectType::klass()), "unexpected class...");
     return graal_mirror;
   }
-
-  Handle simpleName = name;
-  if (klass->oop_is_instance()) {
-    ResourceMark rm;
-    InstanceKlass* ik = (InstanceKlass*) klass();
-    name = java_lang_String::create_from_str(ik->signature_name(), CHECK_NH);
-  }
-
-  int sizeOrSpecies;
-  if (klass->is_interface()) {
-    sizeOrSpecies = (int) 0x80000000; // see HotSpotResolvedObjectType.INTERFACE_SPECIES_VALUE
-  } else if (klass->oop_is_array()) {
-    sizeOrSpecies = (int) 0x7fffffff; // see HotSpotResolvedObjectType.ARRAY_SPECIES_VALUE
-  } else {
-    sizeOrSpecies = InstanceKlass::cast(klass())->size_helper() * HeapWordSize;
-    if (!InstanceKlass::cast(klass())->can_be_fastpath_allocated()) {
-      sizeOrSpecies = -sizeOrSpecies;
-    }
-  }
-
-  return VMToCompiler::createResolvedJavaType(klass(), name, simpleName, java_class, sizeOrSpecies, CHECK_NH);
+  return VMToCompiler::createResolvedJavaType(java_class, CHECK_NH);
 }
 
 BasicType GraalCompiler::kindToBasicType(jchar ch) {