src/share/vm/oops/method.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/oops/method.cpp
src/share/vm/oops/method.cpp
Print this page
*** 479,490 ****
//
// followed by:
//
// return
! assert(name() == vmSymbols::object_initializer_name(), "Should only be called for default constructors");
! assert(signature() == vmSymbols::void_method_signature(), "Should only be called for default constructors");
int size = code_size();
// Check if size match
if (size == 0 || size % 5 != 0) return false;
address cb = code_base();
int last = size - 1;
--- 479,490 ----
//
// followed by:
//
// return
! assert(name()->equals(vmSymbols::object_initializer_name()), "Should only be called for default constructors");
! assert(signature()->equals(vmSymbols::void_method_signature()), "Should only be called for default constructors");
int size = code_size();
// Check if size match
if (size == 0 || size % 5 != 0) return false;
address cb = code_base();
int last = size - 1;
*** 597,607 ****
Bytecodes::length_for(java_code_at(0)) == last_index &&
Bytecodes::is_return(java_code_at(last_index)));
}
bool Method::is_initializer() const {
! return name() == vmSymbols::object_initializer_name() || is_static_initializer();
}
bool Method::has_valid_initializer_flags() const {
return (is_static() ||
method_holder()->major_version() < 51);
--- 597,607 ----
Bytecodes::length_for(java_code_at(0)) == last_index &&
Bytecodes::is_return(java_code_at(last_index)));
}
bool Method::is_initializer() const {
! return name()->equals(vmSymbols::object_initializer_name()) || is_static_initializer();
}
bool Method::has_valid_initializer_flags() const {
return (is_static() ||
method_holder()->major_version() < 51);
*** 609,619 ****
bool Method::is_static_initializer() const {
// For classfiles version 51 or greater, ensure that the clinit method is
// static. Non-static methods with the name "<clinit>" are not static
// initializers. (older classfiles exempted for backward compatibility)
! return name() == vmSymbols::class_initializer_name() &&
has_valid_initializer_flags();
}
objArrayHandle Method::resolved_checked_exceptions_impl(Method* method, TRAPS) {
--- 609,619 ----
bool Method::is_static_initializer() const {
// For classfiles version 51 or greater, ensure that the clinit method is
// static. Non-static methods with the name "<clinit>" are not static
// initializers. (older classfiles exempted for backward compatibility)
! return name()->equals(vmSymbols::class_initializer_name()) &&
has_valid_initializer_flags();
}
objArrayHandle Method::resolved_checked_exceptions_impl(Method* method, TRAPS) {
*** 1146,1156 ****
}
m->set_constants(cp());
m->set_name_index(_imcp_invoke_name);
m->set_signature_index(_imcp_invoke_signature);
assert(MethodHandles::is_signature_polymorphic_name(m->name()), "");
! assert(m->signature() == signature, "");
#ifdef CC_INTERP
ResultTypeFinder rtf(signature);
m->set_result_index(rtf.type());
#endif
m->compute_size_of_parameters(THREAD);
--- 1146,1156 ----
}
m->set_constants(cp());
m->set_name_index(_imcp_invoke_name);
m->set_signature_index(_imcp_invoke_signature);
assert(MethodHandles::is_signature_polymorphic_name(m->name()), "");
! assert(m->signature()->equals(signature), "");
#ifdef CC_INTERP
ResultTypeFinder rtf(signature);
m->set_result_index(rtf.type());
#endif
m->compute_size_of_parameters(THREAD);
src/share/vm/oops/method.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File