5#ifndef RUNTIME_VM_FIELD_TABLE_H_
6#define RUNTIME_VM_FIELD_TABLE_H_
21class FieldInvalidator;
32 is_ready_to_use_(isolate == nullptr) {}
40 intptr_t
Capacity()
const {
return capacity_; }
49 bool IsValidIndex(intptr_t index)
const {
return index >= 0 && index < top_; }
53 bool Register(
const Field& field, intptr_t expected_field_id = -1);
59 void Free(intptr_t index);
61 ObjectPtr At(intptr_t index,
bool concurrent_use =
false)
const {
77 bool concurrent_use =
false) {
98 void Grow(intptr_t new_capacity);
119 bool is_ready_to_use_ =
false;
static constexpr int kInitialCapacity
void Free(intptr_t index)
void SetAt(intptr_t index, ObjectPtr raw_instance, bool concurrent_use=false)
ObjectPtr At(intptr_t index, bool concurrent_use=false) const
void AllocateIndex(intptr_t index)
bool IsReadyToUse() const
intptr_t NumFieldIds() const
FieldTable * Clone(Isolate *for_isolate)
bool IsValidIndex(intptr_t index) const
static constexpr int kCapacityIncrement
static intptr_t FieldOffsetFor(intptr_t field_id)
FieldTable(Isolate *isolate)
intptr_t Capacity() const
void VisitObjectPointers(ObjectPointerVisitor *visitor)