< prev index next >

src/hotspot/share/runtime/signature.cpp

Print this page
rev 55127 : 8223351: [lworld] Primary mirror and nullable mirror for inline type
Reviewed-by: tbd

@@ -414,11 +414,17 @@
                                     FailureMode failure_mode, TRAPS) {
   if (!is_object())
     return Universe::java_mirror(type());
   Klass* klass = as_klass(class_loader, protection_domain, failure_mode, CHECK_NULL);
   if (klass == NULL)  return NULL;
-  return _type == T_VALUETYPE ? ValueKlass::cast(InstanceKlass::cast(klass))->value_mirror() : klass->java_mirror();
+  if (klass->is_value()) {
+    ValueKlass* vk = ValueKlass::cast(InstanceKlass::cast(klass));
+    return _type == T_VALUETYPE ? vk->value_mirror() : vk->nullable_mirror();
+  } else {
+    assert(_type != T_VALUETYPE, "must not be value type");
+    return klass->java_mirror();
+  }
 }
 
 Symbol* SignatureStream::as_symbol_or_null() {
   // Create a symbol from for string _begin _end
   ResourceMark rm;
< prev index next >