Mercurial > hg > truffle
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 } |