src/share/vm/oops/methodOop.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/oops/methodOop.cpp Wed Mar 2 14:05:02 2011
--- new/src/share/vm/oops/methodOop.cpp Wed Mar 2 14:05:00 2011
*** 464,474 ****
--- 464,487 ----
return true;
}
bool methodOopDesc::is_initializer() const {
! return name() == vmSymbols::object_initializer_name() || name() == vmSymbols::class_initializer_name();
! return name() == vmSymbols::object_initializer_name() || is_static_initializer();
+ }
+
+ bool methodOopDesc::has_valid_initializer_flags() const {
+ return (is_static() ||
+ instanceKlass::cast(method_holder())->major_version() < 51);
+ }
+
+ bool methodOopDesc::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 methodOopDesc::resolved_checked_exceptions_impl(methodOop this_oop, TRAPS) {
int length = this_oop->checked_exceptions_length();
src/share/vm/oops/methodOop.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File