| Index: runtime/vm/object.cc
|
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
|
| index 1cc3f207fb19759ece6987d11ee8d57fac62987d..b8d917f69bc6bc6f9698573a912eb17c7bee987f 100644
|
| --- a/runtime/vm/object.cc
|
| +++ b/runtime/vm/object.cc
|
| @@ -14341,13 +14341,20 @@ RawLibrary* MirrorReference::GetLibraryReferent() const {
|
| }
|
|
|
|
|
| -RawMirrorReference* MirrorReference::New(Heap::Space space) {
|
| +RawMirrorReference* MirrorReference::New(const Object& referent,
|
| + Heap::Space space) {
|
| ASSERT(Isolate::Current()->object_store()->mirror_reference_class()
|
| != Class::null());
|
| - RawObject* raw = Object::Allocate(MirrorReference::kClassId,
|
| - MirrorReference::InstanceSize(),
|
| - space);
|
| - return reinterpret_cast<RawMirrorReference*>(raw);
|
| + MirrorReference& result = MirrorReference::Handle();
|
| + {
|
| + RawObject* raw = Object::Allocate(MirrorReference::kClassId,
|
| + MirrorReference::InstanceSize(),
|
| + space);
|
| + NoGCScope no_gc;
|
| + result ^= raw;
|
| + }
|
| + result.set_referent(referent);
|
| + return result.raw();
|
| }
|
|
|
|
|
|
|