< prev index next >
src/share/vm/oops/method.cpp
Print this page
*** 546,555 ****
--- 546,558 ----
case Bytecodes::_goto_w:
case Bytecodes::_jsr_w:
if( bcs.dest_w() < bcs.next_bci() ) _access_flags.set_has_loops();
break;
+
+ default:
+ break;
}
}
_access_flags.set_loops_flag_init();
return _access_flags.has_loops();
}
*** 1386,1396 ****
// Create a shallow copy of Method part, but be careful to preserve the new ConstMethod*
ConstMethod* newcm = newm->constMethod();
int new_const_method_size = newm->constMethod()->size();
! memcpy(newm(), m(), sizeof(Method));
// Create shallow copy of ConstMethod.
memcpy(newcm, m->constMethod(), sizeof(ConstMethod));
// Reset correct method/const method, method size, and parameter info
--- 1389,1402 ----
// Create a shallow copy of Method part, but be careful to preserve the new ConstMethod*
ConstMethod* newcm = newm->constMethod();
int new_const_method_size = newm->constMethod()->size();
! // This works because the source and target are both Methods. Some compilers
! // (e.g., clang) complain that the target vtable pointer will be stomped,
! // so cast away newm()'s and m()'s Methodness.
! memcpy((void*)newm(), (void*)m(), sizeof(Method));
// Create shallow copy of ConstMethod.
memcpy(newcm, m->constMethod(), sizeof(ConstMethod));
// Reset correct method/const method, method size, and parameter info
*** 1509,1518 ****
--- 1515,1526 ----
case vmSymbols::VM_SYMBOL_ENUM_NAME(sqrt_name):
// pretend it is the corresponding method in the non-strict class:
klass_id = vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_Math);
id = vmIntrinsics::find_id(klass_id, name_id, sig_id, flags);
break;
+ default:
+ break;
}
break;
// Signature-polymorphic methods: MethodHandle.invoke*, InvokeDynamic.*., VarHandle
case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_MethodHandle):
*** 1520,1529 ****
--- 1528,1540 ----
if (!is_native()) break;
id = MethodHandles::signature_polymorphic_name_id(method_holder(), name());
if (is_static() != MethodHandles::is_signature_polymorphic_static(id))
id = vmIntrinsics::_none;
break;
+
+ default:
+ break;
}
if (id != vmIntrinsics::_none) {
// Set up its iid. It is an alias method.
set_intrinsic_id(id);
< prev index next >