comparison src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp @ 20278:2c6ef90f030a

8049421: G1 Class Unloading after completing a concurrent mark cycle Reviewed-by: tschatzl, ehelin, brutisso, coleenp, roland, iveresov Contributed-by: stefan.karlsson@oracle.com, mikael.gerdin@oracle.com
author stefank
date Mon, 07 Jul 2014 10:12:40 +0200
parents 9441d22e429a
children 6701abbc4441
comparison
equal deleted inserted replaced
20277:882004b9e7e1 20278:2c6ef90f030a
424 while (next_boundary < addr) { 424 while (next_boundary < addr) {
425 while (n <= next_boundary) { 425 while (n <= next_boundary) {
426 q = n; 426 q = n;
427 oop obj = oop(q); 427 oop obj = oop(q);
428 if (obj->klass_or_null() == NULL) return q; 428 if (obj->klass_or_null() == NULL) return q;
429 n += obj->size(); 429 n += block_size(q);
430 } 430 }
431 assert(q <= next_boundary && n > next_boundary, "Consequence of loop"); 431 assert(q <= next_boundary && n > next_boundary, "Consequence of loop");
432 // [q, n) is the block that crosses the boundary. 432 // [q, n) is the block that crosses the boundary.
433 alloc_block_work2(&next_boundary, &next_index, q, n); 433 alloc_block_work2(&next_boundary, &next_index, q, n);
434 } 434 }