| Index: runtime/vm/object.h
|
| diff --git a/runtime/vm/object.h b/runtime/vm/object.h
|
| index 9ae58737b5076bbf0eb595532deb686034907d04..44fb850c7dc651198fb2d79e09c08752a3ae77f1 100644
|
| --- a/runtime/vm/object.h
|
| +++ b/runtime/vm/object.h
|
| @@ -2012,6 +2012,13 @@ class ICData : public Object {
|
| intptr_t token_pos,
|
| bool is_static_call) const;
|
|
|
| + // Initialize the preallocated empty ICData entry arrays.
|
| + static void InitOnce();
|
| +
|
| + enum {
|
| + kCachedICDataArrayCount = 4
|
| + };
|
| +
|
| private:
|
| static RawICData* New();
|
|
|
| @@ -2051,10 +2058,24 @@ class ICData : public Object {
|
| #endif // DEBUG
|
|
|
| intptr_t TestEntryLength() const;
|
| + static RawArray* NewNonCachedEmptyICDataArray(intptr_t num_args_tested);
|
| + static RawArray* NewEmptyICDataArray(intptr_t num_args_tested);
|
| + static RawICData* NewDescriptor(Zone* zone,
|
| + const Function& owner,
|
| + const String& target_name,
|
| + const Array& arguments_descriptor,
|
| + intptr_t deopt_id,
|
| + intptr_t num_args_tested);
|
| +
|
| static void WriteSentinel(const Array& data, intptr_t test_entry_length);
|
|
|
| + // A cache of VM heap allocated preinitialized empty ic data entry arrays.
|
| + static RawArray* cached_icdata_arrays_[kCachedICDataArrayCount];
|
| +
|
| FINAL_HEAP_OBJECT_IMPLEMENTATION(ICData, Object);
|
| friend class Class;
|
| + friend class SnapshotReader;
|
| + friend class SnapshotWriter;
|
| };
|
|
|
|
|
|
|