| Index: runtime/vm/object.cc
|
| ===================================================================
|
| --- runtime/vm/object.cc (revision 41331)
|
| +++ runtime/vm/object.cc (working copy)
|
| @@ -942,7 +942,7 @@
|
|
|
| intptr_t leftover_len = (leftover_size - TypedData::InstanceSize(0));
|
| ASSERT(TypedData::InstanceSize(leftover_len) == leftover_size);
|
| - raw->ptr()->length_ = Smi::New(leftover_len);
|
| + raw->StoreSmi(&(raw->ptr()->length_), Smi::New(leftover_len));
|
| } else {
|
| // Update the leftover space as a basic object.
|
| ASSERT(leftover_size == Object::InstanceSize());
|
| @@ -12147,8 +12147,10 @@
|
| for (intptr_t i = 0; i < pointer_offsets.length(); i++) {
|
| intptr_t offset_in_instrs = pointer_offsets[i];
|
| code.SetPointerOffsetAt(i, offset_in_instrs);
|
| - const Object* object = region.Load<const Object*>(offset_in_instrs);
|
| - region.Store<RawObject*>(offset_in_instrs, object->raw());
|
| + uword addr = region.start() + offset_in_instrs;
|
| + const Object* object = *reinterpret_cast<Object**>(addr);
|
| + instrs.raw()->StorePointer(reinterpret_cast<RawObject**>(addr),
|
| + object->raw());
|
| }
|
|
|
| // Hook up Code and Instructions objects.
|
| @@ -18169,8 +18171,8 @@
|
| space);
|
| NoGCScope no_gc;
|
| RawOneByteString* result = reinterpret_cast<RawOneByteString*>(raw);
|
| - result->ptr()->length_ = Smi::New(len);
|
| - result->ptr()->hash_ = 0;
|
| + result->StoreSmi(&(result->ptr()->length_), Smi::New(len));
|
| + result->StoreSmi(&(result->ptr()->hash_), Smi::New(0));
|
| return result;
|
| }
|
| }
|
| @@ -18707,7 +18709,7 @@
|
| Array::InstanceSize(len),
|
| space));
|
| NoGCScope no_gc;
|
| - raw->ptr()->length_ = Smi::New(len);
|
| + raw->StoreSmi(&(raw->ptr()->length_), Smi::New(len));
|
| return raw;
|
| }
|
| }
|
|
|