comparison src/share/vm/classfile/classFileParser.cpp @ 518:0af8b0718fc9

6692899: CMS: many vm.parallel_class_loading tests fail with assert "missing Printezis mark" Summary: The CMS concurrent precleaning and concurrent marking phases should work around classes that are undergoing redefinition. Reviewed-by: ysr, dcubed
author jmasa
date Sun, 11 Jan 2009 16:58:24 -0800
parents 7a018855d2f0
children 0fbdb4381b99
comparison
equal deleted inserted replaced
517:e9be0e04635a 518:0af8b0718fc9
230 u2 length = cfs->get_u2_fast(); 230 u2 length = cfs->get_u2_fast();
231 guarantee_property( 231 guarantee_property(
232 length >= 1, "Illegal constant pool size %u in class file %s", 232 length >= 1, "Illegal constant pool size %u in class file %s",
233 length, CHECK_(nullHandle)); 233 length, CHECK_(nullHandle));
234 constantPoolOop constant_pool = 234 constantPoolOop constant_pool =
235 oopFactory::new_constantPool(length, CHECK_(nullHandle)); 235 oopFactory::new_constantPool(length,
236 methodOopDesc::IsSafeConc,
237 CHECK_(nullHandle));
236 constantPoolHandle cp (THREAD, constant_pool); 238 constantPoolHandle cp (THREAD, constant_pool);
237 239
238 cp->set_partially_loaded(); // Enables heap verify to work on partial constantPoolOops 240 cp->set_partially_loaded(); // Enables heap verify to work on partial constantPoolOops
239 241
240 // parsing constant pool entries 242 // parsing constant pool entries
1673 } 1675 }
1674 1676
1675 // All sizing information for a methodOop is finally available, now create it 1677 // All sizing information for a methodOop is finally available, now create it
1676 methodOop m_oop = oopFactory::new_method( 1678 methodOop m_oop = oopFactory::new_method(
1677 code_length, access_flags, linenumber_table_length, 1679 code_length, access_flags, linenumber_table_length,
1678 total_lvt_length, checked_exceptions_length, CHECK_(nullHandle)); 1680 total_lvt_length, checked_exceptions_length,
1681 methodOopDesc::IsSafeConc, CHECK_(nullHandle));
1679 methodHandle m (THREAD, m_oop); 1682 methodHandle m (THREAD, m_oop);
1680 1683
1681 ClassLoadingService::add_class_method_size(m_oop->size()*HeapWordSize); 1684 ClassLoadingService::add_class_method_size(m_oop->size()*HeapWordSize);
1682 1685
1683 // Fill in information from fixed part (access_flags already set) 1686 // Fill in information from fixed part (access_flags already set)