equal
deleted
inserted
replaced
130 // barrier types. Semantically, it should be thought of as a call to the |
130 // barrier types. Semantically, it should be thought of as a call to the |
131 // virtual "_work" function below, which must implement the barrier.) |
131 // virtual "_work" function below, which must implement the barrier.) |
132 // First the pre-write versions... |
132 // First the pre-write versions... |
133 template <class T> inline void write_ref_field_pre(T* field, oop new_val); |
133 template <class T> inline void write_ref_field_pre(T* field, oop new_val); |
134 private: |
134 private: |
|
135 // Helper for write_ref_field_pre and friends, testing for specialized cases. |
|
136 bool devirtualize_reference_writes() const; |
|
137 |
135 // Keep this private so as to catch violations at build time. |
138 // Keep this private so as to catch violations at build time. |
136 virtual void write_ref_field_pre_work( void* field, oop new_val) { guarantee(false, "Not needed"); }; |
139 virtual void write_ref_field_pre_work( void* field, oop new_val) { guarantee(false, "Not needed"); }; |
137 protected: |
140 protected: |
138 virtual void write_ref_field_pre_work( oop* field, oop new_val) {}; |
141 virtual void write_ref_field_pre_work( oop* field, oop new_val) {}; |
139 virtual void write_ref_field_pre_work(narrowOop* field, oop new_val) {}; |
142 virtual void write_ref_field_pre_work(narrowOop* field, oop new_val) {}; |