comparison src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp @ 187:790e66e5fbac

6687581: Make CMS work with compressed oops Summary: Make FreeChunk read markword instead of LSB in _klass pointer to indicate that it's a FreeChunk for compressed oops. Reviewed-by: ysr, jmasa
author coleenp
date Mon, 09 Jun 2008 11:51:19 -0400
parents a61af66fc99e
children d1605aabd0a1
comparison
equal deleted inserted replaced
185:8759d37f2524 187:790e66e5fbac
45 HeapWord* addr = (HeapWord*)this; 45 HeapWord* addr = (HeapWord*)this;
46 size_t hdr = header_size(); 46 size_t hdr = header_size();
47 Copy::fill_to_words(addr + hdr, size - hdr, baadbabeHeapWord); 47 Copy::fill_to_words(addr + hdr, size - hdr, baadbabeHeapWord);
48 } 48 }
49 49
50 void FreeChunk::mangleFreed(size_t size) { 50 void FreeChunk::mangleFreed(size_t sz) {
51 assert(baadbabeHeapWord != deadbeefHeapWord, "Need distinct patterns"); 51 assert(baadbabeHeapWord != deadbeefHeapWord, "Need distinct patterns");
52 // mangle all but the header of a just-freed block of storage 52 // mangle all but the header of a just-freed block of storage
53 // just prior to passing it to the storage dictionary 53 // just prior to passing it to the storage dictionary
54 assert(size >= MinChunkSize, "smallest size of object"); 54 assert(sz >= MinChunkSize, "smallest size of object");
55 assert(size == _size, "just checking"); 55 assert(sz == size(), "just checking");
56 HeapWord* addr = (HeapWord*)this; 56 HeapWord* addr = (HeapWord*)this;
57 size_t hdr = header_size(); 57 size_t hdr = header_size();
58 Copy::fill_to_words(addr + hdr, size - hdr, deadbeefHeapWord); 58 Copy::fill_to_words(addr + hdr, sz - hdr, deadbeefHeapWord);
59 } 59 }
60 60
61 void FreeChunk::verifyList() const { 61 void FreeChunk::verifyList() const {
62 FreeChunk* nextFC = next(); 62 FreeChunk* nextFC = next();
63 if (nextFC != NULL) { 63 if (nextFC != NULL) {