1359 assert(HotSpotJVMCI::DirectHotSpotObjectConstantImpl::is_instance(this, constant), "wrong type"); |
1359 assert(HotSpotJVMCI::DirectHotSpotObjectConstantImpl::is_instance(this, constant), "wrong type"); |
1360 oop obj = HotSpotJVMCI::DirectHotSpotObjectConstantImpl::object(this, HotSpotJVMCI::resolve(constant)); |
1360 oop obj = HotSpotJVMCI::DirectHotSpotObjectConstantImpl::object(this, HotSpotJVMCI::resolve(constant)); |
1361 return Handle(THREAD, obj); |
1361 return Handle(THREAD, obj); |
1362 } else if (isa_IndirectHotSpotObjectConstantImpl(constant)) { |
1362 } else if (isa_IndirectHotSpotObjectConstantImpl(constant)) { |
1363 jlong object_handle = get_IndirectHotSpotObjectConstantImpl_objectHandle(constant); |
1363 jlong object_handle = get_IndirectHotSpotObjectConstantImpl_objectHandle(constant); |
|
1364 if (object_handle == 0L) { |
|
1365 JVMCI_THROW_MSG_(NullPointerException, "Foreign object reference has been cleared", Handle()); |
|
1366 } |
1364 oop result = resolve_handle(object_handle); |
1367 oop result = resolve_handle(object_handle); |
1365 if (result == NULL) { |
1368 if (result == NULL) { |
1366 JVMCI_THROW_MSG_(InternalError, "Constant was unexpectedly NULL", Handle()); |
1369 JVMCI_THROW_MSG_(InternalError, "Constant was unexpectedly NULL", Handle()); |
1367 } |
1370 } |
1368 return Handle(THREAD, result); |
1371 return Handle(THREAD, result); |