< prev index next >

src/hotspot/share/classfile/systemDictionary.cpp

Print this page

        

@@ -253,11 +253,11 @@
          "can not load classes with compiler thread: class=%s, classloader=%s",
          class_name->as_C_string(),
          class_loader.is_null() ? "null" : class_loader->klass()->name()->as_C_string());
   if (FieldType::is_array(class_name)) {
     return resolve_array_class_or_null(class_name, class_loader, protection_domain, THREAD);
-  } else if (FieldType::is_obj(class_name) || FieldType::is_valuetype(class_name)) {
+  } else if (FieldType::is_obj(class_name)) {
     ResourceMark rm(THREAD);
     // Ignore wrapping L and ;. (and Q and ; for value types);
     TempNewSymbol name = SymbolTable::new_symbol(class_name->as_C_string() + 1,
                                    class_name->utf8_length() - 2, CHECK_NULL);
     return resolve_instance_class_or_null(name, class_loader, protection_domain, THREAD);

@@ -296,39 +296,10 @@
     k = TypeArrayKlass::cast(k)->array_klass(fd.dimension(), CHECK_NULL);
   }
   return k;
 }
 
-// Temporary Minimal Value Type support code. Attempt to load VCC for DVT descriptor
-Klass* SystemDictionary::resolve_dvt_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS) {
-  assert(EnableMVT && FieldType::is_dvt_postfix(class_name), "Invariant");
-
-  ResourceMark rm(THREAD);
-  // Given a "Q-type" descriptor and EnableMVT, original exception is not so interesting
-  CLEAR_PENDING_EXCEPTION;
-
-  TempNewSymbol vcc_name = SymbolTable::new_symbol(FieldType::dvt_unmangle_vcc(class_name), CHECK_NULL);
-  Klass* vcc = do_resolve_instance_class_or_null(vcc_name, class_loader, protection_domain, CHECK_NULL);
-  if (vcc == NULL) {
-    return NULL;
-  }
-  Klass* dvt = do_resolve_instance_class_or_null(class_name, class_loader, protection_domain, CHECK_NULL);
-  if ((dvt !=NULL) && dvt->is_value() && (ValueKlass::cast(dvt)->get_vcc_klass() == vcc)) {
-    return dvt;
-  }
-  if (vcc->is_instance_klass() && (!InstanceKlass::cast(vcc)->has_vcc_annotation())) {
-    static const char not_vcc_msg[] =
-        "Failed to resolve %s, found possible ValueCapableClass name mangle match is not ValueCapableClass annotated: %s";
-    size_t buflen = strlen(not_vcc_msg) + class_name->utf8_length() + vcc_name->utf8_length();
-    char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
-    jio_snprintf(buf, buflen, not_vcc_msg, class_name->as_C_string(), vcc_name->as_C_string());
-    THROW_MSG_NULL(vmSymbols::java_lang_NoClassDefFoundError(), buf);
-  }
-  return NULL;
-}
-
-
 // Must be called for any super-class or super-interface resolution
 // during class definition to allow class circularity checking
 // super-interface callers:
 //    parse_interfaces - for defineClass & jvmtiRedefineClasses
 // super-class callers:

@@ -682,13 +653,10 @@
 Klass* SystemDictionary::resolve_instance_class_or_null(Symbol* name,
                                                         Handle class_loader,
                                                         Handle protection_domain,
                                                         TRAPS) {
   Klass* k = do_resolve_instance_class_or_null(name, class_loader, protection_domain, THREAD);
-  if (EnableMVT && (k == NULL) && FieldType::is_dvt_postfix(name)) {
-    k = resolve_dvt_or_null(name, class_loader, protection_domain, THREAD);
-  }
   return k;
 }
 
 // Be careful when modifying this code: once you have run
 // placeholders()->find_and_add(PlaceholderTable::LOAD_INSTANCE),

@@ -697,11 +665,11 @@
 Klass* SystemDictionary::do_resolve_instance_class_or_null(Symbol* name,
                                                         Handle class_loader,
                                                         Handle protection_domain,
                                                         TRAPS) {
   assert(name != NULL && !FieldType::is_array(name) &&
-         !FieldType::is_obj(name)  && !FieldType::is_valuetype(name), "invalid class name");
+         !FieldType::is_obj(name), "invalid class name");
 
   EventClassLoad class_load_start_event;
 
   HandleMark hm(THREAD);
 
< prev index next >