81 virtual void write_ref_field_pre_work(void* field, oop new_val) { |
81 virtual void write_ref_field_pre_work(void* field, oop new_val) { |
82 guarantee(false, "Not needed"); |
82 guarantee(false, "Not needed"); |
83 } |
83 } |
84 |
84 |
85 template <class T> void write_ref_array_pre_work(T* dst, int count); |
85 template <class T> void write_ref_array_pre_work(T* dst, int count); |
86 virtual void write_ref_array_pre(oop* dst, int count) { |
86 virtual void write_ref_array_pre(oop* dst, int count, bool dest_uninitialized) { |
87 write_ref_array_pre_work(dst, count); |
87 if (!dest_uninitialized) { |
|
88 write_ref_array_pre_work(dst, count); |
|
89 } |
88 } |
90 } |
89 virtual void write_ref_array_pre(narrowOop* dst, int count) { |
91 virtual void write_ref_array_pre(narrowOop* dst, int count, bool dest_uninitialized) { |
90 write_ref_array_pre_work(dst, count); |
92 if (!dest_uninitialized) { |
|
93 write_ref_array_pre_work(dst, count); |
|
94 } |
91 } |
95 } |
92 }; |
96 }; |
93 |
97 |
94 // Adds card-table logging to the post-barrier. |
98 // Adds card-table logging to the post-barrier. |
95 // Usual invariant: all dirty cards are logged in the DirtyCardQueueSet. |
99 // Usual invariant: all dirty cards are logged in the DirtyCardQueueSet. |