| Index: runtime/vm/dart_api_impl.cc
|
| ===================================================================
|
| --- runtime/vm/dart_api_impl.cc (revision 11534)
|
| +++ runtime/vm/dart_api_impl.cc (working copy)
|
| @@ -1533,27 +1533,24 @@
|
| RETURN_NULL_ERROR(peer);
|
| } else {
|
| NoGCScope no_gc_scope;
|
| - RawObject* raw_obj = Api::UnwrapHandle(object);
|
| + uword raw_addr = RawObject::ToAddr(Api::UnwrapHandle(object));
|
| switch (class_id) {
|
| case kExternalOneByteStringCid: {
|
| RawExternalOneByteString* raw_string =
|
| - reinterpret_cast<RawExternalOneByteString*>(raw_obj)->ptr();
|
| - ExternalStringData<uint8_t>* data = raw_string->external_data_;
|
| - *peer = data->peer();
|
| + reinterpret_cast<RawExternalOneByteString*>(raw_addr);
|
| + *peer = raw_string->peer();
|
| return Api::Success(Isolate::Current());
|
| }
|
| case kExternalTwoByteStringCid: {
|
| RawExternalTwoByteString* raw_string =
|
| - reinterpret_cast<RawExternalTwoByteString*>(raw_obj)->ptr();
|
| - ExternalStringData<uint16_t>* data = raw_string->external_data_;
|
| - *peer = data->peer();
|
| + reinterpret_cast<RawExternalTwoByteString*>(raw_addr);
|
| + *peer = raw_string->peer();
|
| return Api::Success(Isolate::Current());
|
| }
|
| case kExternalFourByteStringCid: {
|
| RawExternalFourByteString* raw_string =
|
| - reinterpret_cast<RawExternalFourByteString*>(raw_obj)->ptr();
|
| - ExternalStringData<uint32_t>* data = raw_string->external_data_;
|
| - *peer = data->peer();
|
| + reinterpret_cast<RawExternalFourByteString*>(raw_addr);
|
| + *peer = raw_string->peer();
|
| return Api::Success(Isolate::Current());
|
| }
|
| }
|
|
|