| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/bigint_operations.h" | 5 #include "vm/bigint_operations.h" |
| 6 #include "vm/object.h" | 6 #include "vm/object.h" |
| 7 #include "vm/object_store.h" | 7 #include "vm/object_store.h" |
| 8 #include "vm/snapshot.h" | 8 #include "vm/snapshot.h" |
| 9 #include "vm/symbols.h" | 9 #include "vm/symbols.h" |
| 10 #include "vm/visitor.h" | 10 #include "vm/visitor.h" |
| (...skipping 2450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2461 } | 2461 } |
| 2462 return result.raw(); | 2462 return result.raw(); |
| 2463 } | 2463 } |
| 2464 #undef TYPED_DATA_READ | 2464 #undef TYPED_DATA_READ |
| 2465 | 2465 |
| 2466 | 2466 |
| 2467 RawExternalTypedData* ExternalTypedData::ReadFrom(SnapshotReader* reader, | 2467 RawExternalTypedData* ExternalTypedData::ReadFrom(SnapshotReader* reader, |
| 2468 intptr_t object_id, | 2468 intptr_t object_id, |
| 2469 intptr_t tags, | 2469 intptr_t tags, |
| 2470 Snapshot::Kind kind) { | 2470 Snapshot::Kind kind) { |
| 2471 UNIMPLEMENTED(); | 2471 ASSERT(kind != Snapshot::kFull); |
| 2472 return ExternalTypedData::null(); | 2472 intptr_t cid = RawObject::ClassIdTag::decode(tags); |
| 2473 intptr_t length = reader->ReadSmiValue(); |
| 2474 uint8_t* data = reinterpret_cast<uint8_t*>(reader->ReadIntptrValue()); |
| 2475 const ExternalTypedData& obj = ExternalTypedData::Handle( |
| 2476 ExternalTypedData::New(cid, data, length)); |
| 2477 void* peer = reinterpret_cast<void*>(reader->ReadIntptrValue()); |
| 2478 Dart_WeakPersistentHandleFinalizer callback = |
| 2479 reinterpret_cast<Dart_WeakPersistentHandleFinalizer>( |
| 2480 reader->ReadIntptrValue()); |
| 2481 obj.AddFinalizer(peer, callback); |
| 2482 return obj.raw(); |
| 2473 } | 2483 } |
| 2474 | 2484 |
| 2475 | 2485 |
| 2476 #define TYPED_DATA_WRITE(type) \ | 2486 #define TYPED_DATA_WRITE(type) \ |
| 2477 { \ | 2487 { \ |
| 2478 type* data = reinterpret_cast<type*>(ptr()->data_); \ | 2488 type* data = reinterpret_cast<type*>(ptr()->data_); \ |
| 2479 for (intptr_t i = 0; i < len; i++) { \ | 2489 for (intptr_t i = 0; i < len; i++) { \ |
| 2480 writer->Write(data[i]); \ | 2490 writer->Write(data[i]); \ |
| 2481 } \ | 2491 } \ |
| 2482 } \ | 2492 } \ |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2766 // Write out the class and tags information. | 2776 // Write out the class and tags information. |
| 2767 writer->WriteIndexedObject(kWeakPropertyCid); | 2777 writer->WriteIndexedObject(kWeakPropertyCid); |
| 2768 writer->WriteIntptrValue(writer->GetObjectTags(this)); | 2778 writer->WriteIntptrValue(writer->GetObjectTags(this)); |
| 2769 | 2779 |
| 2770 // Write out all the other fields. | 2780 // Write out all the other fields. |
| 2771 writer->Write<RawObject*>(ptr()->key_); | 2781 writer->Write<RawObject*>(ptr()->key_); |
| 2772 writer->Write<RawObject*>(ptr()->value_); | 2782 writer->Write<RawObject*>(ptr()->value_); |
| 2773 } | 2783 } |
| 2774 | 2784 |
| 2775 } // namespace dart | 2785 } // namespace dart |
| OLD | NEW |