21 * questions. |
21 * questions. |
22 * |
22 * |
23 */ |
23 */ |
24 |
24 |
25 #include "precompiled.hpp" |
25 #include "precompiled.hpp" |
|
26 #include "gc/shared/cardTableBarrierSetAssembler.hpp" |
26 #include "gc/shared/cardTableBarrierSet.inline.hpp" |
27 #include "gc/shared/cardTableBarrierSet.inline.hpp" |
27 #include "gc/shared/collectedHeap.hpp" |
28 #include "gc/shared/collectedHeap.hpp" |
28 #include "gc/shared/genCollectedHeap.hpp" |
29 #include "gc/shared/genCollectedHeap.hpp" |
29 #include "gc/shared/space.inline.hpp" |
30 #include "gc/shared/space.inline.hpp" |
30 #include "logging/log.hpp" |
31 #include "logging/log.hpp" |
37 |
38 |
38 // This kind of "BarrierSet" allows a "CollectedHeap" to detect and |
39 // This kind of "BarrierSet" allows a "CollectedHeap" to detect and |
39 // enumerate ref fields that have been modified (since the last |
40 // enumerate ref fields that have been modified (since the last |
40 // enumeration.) |
41 // enumeration.) |
41 |
42 |
42 CardTableBarrierSet::CardTableBarrierSet( |
43 CardTableBarrierSet::CardTableBarrierSet(BarrierSetAssembler* barrier_set_assembler, |
43 CardTable* card_table, |
44 CardTable* card_table, |
44 const BarrierSet::FakeRtti& fake_rtti) : |
45 const BarrierSet::FakeRtti& fake_rtti) : |
45 ModRefBarrierSet(fake_rtti.add_tag(BarrierSet::CardTableBarrierSet)), |
46 ModRefBarrierSet(barrier_set_assembler, |
|
47 fake_rtti.add_tag(BarrierSet::CardTableBarrierSet)), |
46 _defer_initial_card_mark(false), |
48 _defer_initial_card_mark(false), |
47 _card_table(card_table) |
49 _card_table(card_table) |
48 {} |
50 {} |
49 |
51 |
50 CardTableBarrierSet::CardTableBarrierSet(CardTable* card_table) : |
52 CardTableBarrierSet::CardTableBarrierSet(CardTable* card_table) : |
51 ModRefBarrierSet(BarrierSet::FakeRtti(BarrierSet::CardTableBarrierSet)), |
53 ModRefBarrierSet(make_barrier_set_assembler<CardTableBarrierSetAssembler>(), |
|
54 BarrierSet::FakeRtti(BarrierSet::CardTableBarrierSet)), |
52 _defer_initial_card_mark(false), |
55 _defer_initial_card_mark(false), |
53 _card_table(card_table) |
56 _card_table(card_table) |
54 {} |
57 {} |
55 |
58 |
56 void CardTableBarrierSet::initialize() { |
59 void CardTableBarrierSet::initialize() { |