class WriteBarrier { public: enum NullCheck {
kWithoutNullCheck,
kWithNullCheck,
};
// Must be called if a reference field of an Object in the heap changes, and before any GC // safe-point. The call is not needed if null is stored in the field. template <NullCheck kNullCheck = kWithNullCheck>
ALWAYS_INLINE staticvoid ForFieldWrite(ObjPtr<mirror::Object> dst,
[[maybe_unused]] MemberOffset offset,
[[maybe_unused]] ObjPtr<mirror::Object> new_value)
REQUIRES_SHARED(Locks::mutator_lock_);
// Must be called if a reference field of an ObjectArray in the heap changes, and before any GC // safe-point. The call is not needed if null is stored in the field.
ALWAYS_INLINE staticvoid ForArrayWrite(ObjPtr<mirror::Object> dst,
[[maybe_unused]] int start_offset,
[[maybe_unused]] size_t length)
REQUIRES_SHARED(Locks::mutator_lock_);
// Write barrier for every reference field in an object.
ALWAYS_INLINE staticvoid ForEveryFieldWrite(ObjPtr<mirror::Object> obj)
REQUIRES_SHARED(Locks::mutator_lock_);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.