| Index: runtime/vm/object.cc
|
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
|
| index 6a7d34c8099cea7543dd4b53a67f142d9cf8e2ee..cbc1d59d5c7584683c601dda2e3e210b2ef8b7b7 100644
|
| --- a/runtime/vm/object.cc
|
| +++ b/runtime/vm/object.cc
|
| @@ -635,7 +635,7 @@ void Object::InitOnce(Isolate* isolate) {
|
| // Allocate and initialize the empty_array instance.
|
| {
|
| uword address = heap->Allocate(Array::InstanceSize(0), Heap::kOld);
|
| - InitializeObject(address, kArrayCid, Array::InstanceSize(0));
|
| + InitializeObject(address, kImmutableArrayCid, Array::InstanceSize(0));
|
| Array::initializeHandle(
|
| empty_array_,
|
| reinterpret_cast<RawArray*>(address + kHeapObjectTag));
|
| @@ -646,7 +646,7 @@ void Object::InitOnce(Isolate* isolate) {
|
| // Allocate and initialize the zero_array instance.
|
| {
|
| uword address = heap->Allocate(Array::InstanceSize(1), Heap::kOld);
|
| - InitializeObject(address, kArrayCid, Array::InstanceSize(1));
|
| + InitializeObject(address, kImmutableArrayCid, Array::InstanceSize(1));
|
| Array::initializeHandle(
|
| zero_array_,
|
| reinterpret_cast<RawArray*>(address + kHeapObjectTag));
|
| @@ -19733,6 +19733,7 @@ RawArray* Array::Slice(intptr_t start,
|
|
|
|
|
| void Array::MakeImmutable() const {
|
| + if (IsImmutable()) return;
|
| NoSafepointScope no_safepoint;
|
| uword tags = raw_ptr()->tags_;
|
| uword old_tags;
|
|
|