| Index: runtime/vm/object.cc
|
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
|
| index 598addcd7734cfddc03b707e0030bb613bf742d9..113605cfbc93447e05b4bd7420ceb0cd00da36ad 100644
|
| --- a/runtime/vm/object.cc
|
| +++ b/runtime/vm/object.cc
|
| @@ -14345,13 +14345,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();
|
| }
|
|
|
|
|
|
|