mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 11:34:38 +02:00
6912621: iCMS: Error: assert(_markBitMap.isMarked(addr + 1),"Missing Printezis bit?")
Fix block_size_if_printezis_bits() so it does not expect the bits, only uses them when available. Fix block_size_no_stall() so it does not stall when the bits are missing such cases, letting the caller deal with zero size returns. Constant pool cache oops do not need to be unparsable or conc_unsafe after their klass pointer is installed. Some cosmetic clean-ups and some assertion checking for conc-usafety which, in the presence of class file redefinition, has no a-priori time boundedness, so all GCs must be able to safely deal with putatively conc-unsafe objects in a stop-world pause. Reviewed-by: jmasa, johnc
This commit is contained in:
parent
60418bbde3
commit
7eccb460db
16 changed files with 67 additions and 76 deletions
|
@ -1134,8 +1134,9 @@ int MethodHandleCompiler::cpool_primitive_put(BasicType bt, jvalue* con) {
|
|||
|
||||
constantPoolHandle MethodHandleCompiler::get_constant_pool(TRAPS) const {
|
||||
constantPoolHandle nullHandle;
|
||||
bool is_conc_safe = true;
|
||||
constantPoolOop cpool_oop = oopFactory::new_constantPool(_constants.length(), is_conc_safe, CHECK_(nullHandle));
|
||||
constantPoolOop cpool_oop = oopFactory::new_constantPool(_constants.length(),
|
||||
oopDesc::IsSafeConc,
|
||||
CHECK_(nullHandle));
|
||||
constantPoolHandle cpool(THREAD, cpool_oop);
|
||||
|
||||
// Fill the real constant pool skipping the zero element.
|
||||
|
@ -1180,10 +1181,9 @@ methodHandle MethodHandleCompiler::get_method_oop(TRAPS) const {
|
|||
else
|
||||
flags_bits = (/*JVM_MH_INVOKE_BITS |*/ JVM_ACC_PUBLIC | JVM_ACC_FINAL | JVM_ACC_SYNTHETIC);
|
||||
|
||||
bool is_conc_safe = true;
|
||||
methodOop m_oop = oopFactory::new_method(bytecode_length(),
|
||||
accessFlags_from(flags_bits),
|
||||
0, 0, 0, is_conc_safe, CHECK_(nullHandle));
|
||||
0, 0, 0, oopDesc::IsSafeConc, CHECK_(nullHandle));
|
||||
methodHandle m(THREAD, m_oop);
|
||||
m_oop = NULL; // oop not GC safe
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue