hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
changeset 19979 ebe1dbb6e1aa
parent 19548 e81917358076
child 20282 7f9cbdf89af2
equal deleted inserted replaced
19766:b6d8784a1037 19979:ebe1dbb6e1aa
   228   // Verify the assumption that FreeChunk::_prev and OopDesc::_klass
   228   // Verify the assumption that FreeChunk::_prev and OopDesc::_klass
   229   // offsets match. The ability to tell free chunks from objects
   229   // offsets match. The ability to tell free chunks from objects
   230   // depends on this property.
   230   // depends on this property.
   231   debug_only(
   231   debug_only(
   232     FreeChunk* junk = NULL;
   232     FreeChunk* junk = NULL;
   233     assert(UseCompressedKlassPointers ||
   233     assert(UseCompressedClassPointers ||
   234            junk->prev_addr() == (void*)(oop(junk)->klass_addr()),
   234            junk->prev_addr() == (void*)(oop(junk)->klass_addr()),
   235            "Offset of FreeChunk::_prev within FreeChunk must match"
   235            "Offset of FreeChunk::_prev within FreeChunk must match"
   236            "  that of OopDesc::_klass within OopDesc");
   236            "  that of OopDesc::_klass within OopDesc");
   237   )
   237   )
   238   if (CollectedHeap::use_parallel_gc_threads()) {
   238   if (CollectedHeap::use_parallel_gc_threads()) {
  1405   obj->set_mark(m);
  1405   obj->set_mark(m);
  1406   assert(obj->klass_or_null() == NULL, "Object should be uninitialized here.");
  1406   assert(obj->klass_or_null() == NULL, "Object should be uninitialized here.");
  1407   assert(!((FreeChunk*)obj_ptr)->is_free(), "Error, block will look free but show wrong size");
  1407   assert(!((FreeChunk*)obj_ptr)->is_free(), "Error, block will look free but show wrong size");
  1408   OrderAccess::storestore();
  1408   OrderAccess::storestore();
  1409 
  1409 
  1410   if (UseCompressedKlassPointers) {
  1410   if (UseCompressedClassPointers) {
  1411     // Copy gap missed by (aligned) header size calculation below
  1411     // Copy gap missed by (aligned) header size calculation below
  1412     obj->set_klass_gap(old->klass_gap());
  1412     obj->set_klass_gap(old->klass_gap());
  1413   }
  1413   }
  1414   if (word_sz > (size_t)oopDesc::header_size()) {
  1414   if (word_sz > (size_t)oopDesc::header_size()) {
  1415     Copy::aligned_disjoint_words(old_ptr + oopDesc::header_size(),
  1415     Copy::aligned_disjoint_words(old_ptr + oopDesc::header_size(),