< prev index next >

src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -760,12 +760,15 @@
 
 // Apply the given closure to each block in the space.
 void CompactibleFreeListSpace::blk_iterate_careful(BlkClosureCareful* cl) {
   assert_lock_strong(freelistLock());
   HeapWord *cur, *limit;
-  for (cur = bottom(), limit = end(); cur < limit;
-       cur += cl->do_blk_careful(cur));
+  size_t res;
+  for (cur = bottom(), limit = end(); cur < limit; cur += res) {
+    res = cl->do_blk_careful(cur);
+    assert(cur + res > cur, "Not monotonically increasing ?");
+  }
 }
 
 // Apply the given closure to each block in the space.
 void CompactibleFreeListSpace::blk_iterate(BlkClosure* cl) {
   assert_lock_strong(freelistLock());
< prev index next >