6728025: LinkResolver is missing some ResourceMarks
Reviewed-by: dholmes, coleenp, ysr, kamg
This commit is contained in:
parent
e061c0b0a4
commit
62a8508587
@ -327,6 +327,7 @@ void LinkResolver::resolve_method(methodHandle& resolved_method, KlassHandle res
|
|||||||
|
|
||||||
// 1. check if klass is not interface
|
// 1. check if klass is not interface
|
||||||
if (resolved_klass->is_interface()) {
|
if (resolved_klass->is_interface()) {
|
||||||
|
ResourceMark rm(THREAD);
|
||||||
char buf[200];
|
char buf[200];
|
||||||
jio_snprintf(buf, sizeof(buf), "Found interface %s, but class was expected", Klass::cast(resolved_klass())->external_name());
|
jio_snprintf(buf, sizeof(buf), "Found interface %s, but class was expected", Klass::cast(resolved_klass())->external_name());
|
||||||
THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), buf);
|
THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), buf);
|
||||||
@ -413,6 +414,7 @@ void LinkResolver::resolve_interface_method(methodHandle& resolved_method,
|
|||||||
|
|
||||||
// check if klass is interface
|
// check if klass is interface
|
||||||
if (!resolved_klass->is_interface()) {
|
if (!resolved_klass->is_interface()) {
|
||||||
|
ResourceMark rm(THREAD);
|
||||||
char buf[200];
|
char buf[200];
|
||||||
jio_snprintf(buf, sizeof(buf), "Found class %s, but interface was expected", Klass::cast(resolved_klass())->external_name());
|
jio_snprintf(buf, sizeof(buf), "Found class %s, but interface was expected", Klass::cast(resolved_klass())->external_name());
|
||||||
THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), buf);
|
THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), buf);
|
||||||
@ -534,6 +536,7 @@ void LinkResolver::resolve_field(FieldAccessInfo& result, constantPoolHandle poo
|
|||||||
|
|
||||||
// check for errors
|
// check for errors
|
||||||
if (is_static != fd.is_static()) {
|
if (is_static != fd.is_static()) {
|
||||||
|
ResourceMark rm(THREAD);
|
||||||
char msg[200];
|
char msg[200];
|
||||||
jio_snprintf(msg, sizeof(msg), "Expected %s field %s.%s", is_static ? "static" : "non-static", Klass::cast(resolved_klass())->external_name(), fd.name()->as_C_string());
|
jio_snprintf(msg, sizeof(msg), "Expected %s field %s.%s", is_static ? "static" : "non-static", Klass::cast(resolved_klass())->external_name(), fd.name()->as_C_string());
|
||||||
THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), msg);
|
THROW_MSG(vmSymbols::java_lang_IncompatibleClassChangeError(), msg);
|
||||||
@ -631,6 +634,7 @@ void LinkResolver::linktime_resolve_static_method(methodHandle& resolved_method,
|
|||||||
|
|
||||||
// check if static
|
// check if static
|
||||||
if (!resolved_method->is_static()) {
|
if (!resolved_method->is_static()) {
|
||||||
|
ResourceMark rm(THREAD);
|
||||||
char buf[200];
|
char buf[200];
|
||||||
jio_snprintf(buf, sizeof(buf), "Expected static method %s", methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()),
|
jio_snprintf(buf, sizeof(buf), "Expected static method %s", methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()),
|
||||||
resolved_method->name(),
|
resolved_method->name(),
|
||||||
@ -671,6 +675,7 @@ void LinkResolver::linktime_resolve_special_method(methodHandle& resolved_method
|
|||||||
|
|
||||||
// check if not static
|
// check if not static
|
||||||
if (resolved_method->is_static()) {
|
if (resolved_method->is_static()) {
|
||||||
|
ResourceMark rm(THREAD);
|
||||||
char buf[200];
|
char buf[200];
|
||||||
jio_snprintf(buf, sizeof(buf),
|
jio_snprintf(buf, sizeof(buf),
|
||||||
"Expecting non-static method %s",
|
"Expecting non-static method %s",
|
||||||
@ -717,6 +722,7 @@ void LinkResolver::runtime_resolve_special_method(CallInfo& result, methodHandle
|
|||||||
|
|
||||||
// check if not static
|
// check if not static
|
||||||
if (sel_method->is_static()) {
|
if (sel_method->is_static()) {
|
||||||
|
ResourceMark rm(THREAD);
|
||||||
char buf[200];
|
char buf[200];
|
||||||
jio_snprintf(buf, sizeof(buf), "Expecting non-static method %s", methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()),
|
jio_snprintf(buf, sizeof(buf), "Expecting non-static method %s", methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()),
|
||||||
resolved_method->name(),
|
resolved_method->name(),
|
||||||
@ -757,6 +763,7 @@ void LinkResolver::linktime_resolve_virtual_method(methodHandle &resolved_method
|
|||||||
|
|
||||||
// check if not static
|
// check if not static
|
||||||
if (resolved_method->is_static()) {
|
if (resolved_method->is_static()) {
|
||||||
|
ResourceMark rm(THREAD);
|
||||||
char buf[200];
|
char buf[200];
|
||||||
jio_snprintf(buf, sizeof(buf), "Expecting non-static method %s", methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()),
|
jio_snprintf(buf, sizeof(buf), "Expecting non-static method %s", methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()),
|
||||||
resolved_method->name(),
|
resolved_method->name(),
|
||||||
@ -873,6 +880,7 @@ void LinkResolver::runtime_resolve_interface_method(CallInfo& result, methodHand
|
|||||||
|
|
||||||
// check if receiver klass implements the resolved interface
|
// check if receiver klass implements the resolved interface
|
||||||
if (!recv_klass->is_subtype_of(resolved_klass())) {
|
if (!recv_klass->is_subtype_of(resolved_klass())) {
|
||||||
|
ResourceMark rm(THREAD);
|
||||||
char buf[200];
|
char buf[200];
|
||||||
jio_snprintf(buf, sizeof(buf), "Class %s does not implement the requested interface %s",
|
jio_snprintf(buf, sizeof(buf), "Class %s does not implement the requested interface %s",
|
||||||
(Klass::cast(recv_klass()))->external_name(),
|
(Klass::cast(recv_klass()))->external_name(),
|
||||||
|
Loading…
Reference in New Issue
Block a user