# HG changeset patch # User tonyp # Date 1319821450 14400 # Node ID 59519b7d7b9df9f13403a158490b2432493239b6 # Parent 8487c835efbfd2ff42f829726f46f7fc1ea909b5# Parent 5a5ed80bea5bbf9dbd166c4fc9a091fab0666570 Merge diff -r 8487c835efbf -r 59519b7d7b9d src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Fri Oct 28 12:49:16 2011 -0400 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Fri Oct 28 13:04:10 2011 -0400 @@ -50,8 +50,8 @@ int CompactibleFreeListSpace::_lockRank = Mutex::leaf + 3; // Defaults are 0 so things will break badly if incorrectly initialized. -int CompactibleFreeListSpace::IndexSetStart = 0; -int CompactibleFreeListSpace::IndexSetStride = 0; +size_t CompactibleFreeListSpace::IndexSetStart = 0; +size_t CompactibleFreeListSpace::IndexSetStride = 0; size_t MinChunkSize = 0; @@ -62,7 +62,7 @@ MinChunkSize = numQuanta(sizeof(FreeChunk), MinObjAlignmentInBytes) * MinObjAlignment; assert(IndexSetStart == 0 && IndexSetStride == 0, "already set"); - IndexSetStart = (int) MinChunkSize; + IndexSetStart = MinChunkSize; IndexSetStride = MinObjAlignment; } @@ -250,7 +250,7 @@ } void CompactibleFreeListSpace::resetIndexedFreeListArray() { - for (int i = 1; i < IndexSetSize; i++) { + for (size_t i = 1; i < IndexSetSize; i++) { assert(_indexedFreeList[i].size() == (size_t) i, "Indexed free list sizes are incorrect"); _indexedFreeList[i].reset(IndexSetSize); @@ -337,7 +337,7 @@ size_t CompactibleFreeListSpace::totalCountInIndexedFreeLists() const { size_t count = 0; - for (int i = (int)MinChunkSize; i < IndexSetSize; i++) { + for (size_t i = IndexSetStart; i < IndexSetSize; i++) { debug_only( ssize_t total_list_count = 0; for (FreeChunk* fc = _indexedFreeList[i].head(); fc != NULL; @@ -2200,7 +2200,7 @@ void CompactibleFreeListSpace::clearFLCensus() { assert_locked(); - int i; + size_t i; for (i = IndexSetStart; i < IndexSetSize; i += IndexSetStride) { FreeList *fl = &_indexedFreeList[i]; fl->set_prevSweep(fl->count()); @@ -2494,7 +2494,7 @@ void CompactibleFreeListSpace::verifyIndexedFreeLists() const { size_t i = 0; - for (; i < MinChunkSize; i++) { + for (; i < IndexSetStart; i++) { guarantee(_indexedFreeList[i].head() == NULL, "should be NULL"); } for (; i < IndexSetSize; i++) { @@ -2507,7 +2507,7 @@ FreeChunk* tail = _indexedFreeList[size].tail(); size_t num = _indexedFreeList[size].count(); size_t n = 0; - guarantee(((size >= MinChunkSize) && (size % IndexSetStride == 0)) || fc == NULL, + guarantee(((size >= IndexSetStart) && (size % IndexSetStride == 0)) || fc == NULL, "Slot should have been empty"); for (; fc != NULL; fc = fc->next(), n++) { guarantee(fc->size() == size, "Size inconsistency"); @@ -2527,7 +2527,7 @@ "else MIN_TREE_CHUNK_SIZE is wrong"); assert((IndexSetStride == 2 && IndexSetStart == 4) || // 32-bit (IndexSetStride == 1 && IndexSetStart == 3), "just checking"); // 64-bit - assert((IndexSetStride != 2) || (MinChunkSize % 2 == 0), + assert((IndexSetStride != 2) || (IndexSetStart % 2 == 0), "Some for-loops may be incorrectly initialized"); assert((IndexSetStride != 2) || (IndexSetSize % 2 == 1), "For-loops that iterate over IndexSet with stride 2 may be wrong"); diff -r 8487c835efbf -r 59519b7d7b9d src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp --- a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp Fri Oct 28 12:49:16 2011 -0400 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp Fri Oct 28 13:04:10 2011 -0400 @@ -104,8 +104,8 @@ SmallForDictionary = 257, // size < this then use _indexedFreeList IndexSetSize = SmallForDictionary // keep this odd-sized }; - static int IndexSetStart; - static int IndexSetStride; + static size_t IndexSetStart; + static size_t IndexSetStride; private: enum FitStrategyOptions {