| 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 2553 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2564       break; | 2564       break; | 
| 2565     case kTypedDataFloat64ArrayCid: | 2565     case kTypedDataFloat64ArrayCid: | 
| 2566       TYPED_DATA_WRITE(double);  // NOLINT. | 2566       TYPED_DATA_WRITE(double);  // NOLINT. | 
| 2567       break; | 2567       break; | 
| 2568     default: | 2568     default: | 
| 2569       UNREACHABLE(); | 2569       UNREACHABLE(); | 
| 2570   } | 2570   } | 
| 2571 } | 2571 } | 
| 2572 | 2572 | 
| 2573 | 2573 | 
|  | 2574 #define EXT_TYPED_DATA_WRITE(cid, type)                                        \ | 
|  | 2575   writer->WriteIndexedObject(cid);                                             \ | 
|  | 2576   writer->WriteIntptrValue(RawObject::ClassIdTag::update(cid, tags));          \ | 
|  | 2577   writer->Write<RawObject*>(ptr()->length_);                                   \ | 
|  | 2578   TYPED_DATA_WRITE(type)                                                       \ | 
|  | 2579 | 
|  | 2580 | 
| 2574 void RawExternalTypedData::WriteTo(SnapshotWriter* writer, | 2581 void RawExternalTypedData::WriteTo(SnapshotWriter* writer, | 
| 2575                                    intptr_t object_id, | 2582                                    intptr_t object_id, | 
| 2576                                    Snapshot::Kind kind) { | 2583                                    Snapshot::Kind kind) { | 
| 2577   ASSERT(writer != NULL); | 2584   ASSERT(writer != NULL); | 
| 2578   intptr_t tags = writer->GetObjectTags(this); | 2585   intptr_t tags = writer->GetObjectTags(this); | 
| 2579   intptr_t cid = ClassIdTag::decode(tags); | 2586   intptr_t cid = ClassIdTag::decode(tags); | 
| 2580   intptr_t len = Smi::Value(ptr()->length_); | 2587   intptr_t len = Smi::Value(ptr()->length_); | 
| 2581 | 2588 | 
| 2582   // Write out the serialization header value for this object. | 2589   // Write out the serialization header value for this object. | 
| 2583   writer->WriteInlinedObjectHeader(object_id); | 2590   writer->WriteInlinedObjectHeader(object_id); | 
| 2584 | 2591 | 
| 2585   // Write out the class and tags information. |  | 
| 2586   writer->WriteIndexedObject(cid); |  | 
| 2587   writer->WriteIntptrValue(tags); |  | 
| 2588 |  | 
| 2589   // Write out the length field. |  | 
| 2590   writer->Write<RawObject*>(ptr()->length_); |  | 
| 2591 |  | 
| 2592   switch (cid) { | 2592   switch (cid) { | 
| 2593     case kExternalTypedDataInt8ArrayCid: | 2593     case kExternalTypedDataInt8ArrayCid: | 
| 2594       TYPED_DATA_WRITE(int8_t); | 2594       EXT_TYPED_DATA_WRITE(kTypedDataInt8ArrayCid, int8_t); | 
| 2595       break; | 2595       break; | 
| 2596     case kExternalTypedDataUint8ArrayCid: | 2596     case kExternalTypedDataUint8ArrayCid: | 
| 2597       TYPED_DATA_WRITE(uint8_t); | 2597       EXT_TYPED_DATA_WRITE(kTypedDataUint8ArrayCid, uint8_t); | 
| 2598       break; | 2598       break; | 
| 2599     case kExternalTypedDataUint8ClampedArrayCid: | 2599     case kExternalTypedDataUint8ClampedArrayCid: | 
| 2600       TYPED_DATA_WRITE(uint8_t); | 2600       EXT_TYPED_DATA_WRITE(kTypedDataUint8ClampedArrayCid, uint8_t); | 
| 2601       break; | 2601       break; | 
| 2602     case kExternalTypedDataInt16ArrayCid: | 2602     case kExternalTypedDataInt16ArrayCid: | 
| 2603       TYPED_DATA_WRITE(int16_t); | 2603       EXT_TYPED_DATA_WRITE(kTypedDataInt16ArrayCid, int16_t); | 
| 2604       break; | 2604       break; | 
| 2605     case kExternalTypedDataUint16ArrayCid: | 2605     case kExternalTypedDataUint16ArrayCid: | 
| 2606       TYPED_DATA_WRITE(uint16_t); | 2606       EXT_TYPED_DATA_WRITE(kTypedDataUint16ArrayCid, uint16_t); | 
| 2607       break; | 2607       break; | 
| 2608     case kExternalTypedDataInt32ArrayCid: | 2608     case kExternalTypedDataInt32ArrayCid: | 
| 2609       TYPED_DATA_WRITE(int32_t); | 2609       EXT_TYPED_DATA_WRITE(kTypedDataInt32ArrayCid, int32_t); | 
| 2610       break; | 2610       break; | 
| 2611     case kExternalTypedDataUint32ArrayCid: | 2611     case kExternalTypedDataUint32ArrayCid: | 
| 2612       TYPED_DATA_WRITE(uint32_t); | 2612       EXT_TYPED_DATA_WRITE(kTypedDataUint32ArrayCid, uint32_t); | 
| 2613       break; | 2613       break; | 
| 2614     case kExternalTypedDataInt64ArrayCid: | 2614     case kExternalTypedDataInt64ArrayCid: | 
| 2615       TYPED_DATA_WRITE(int64_t); | 2615       EXT_TYPED_DATA_WRITE(kTypedDataInt64ArrayCid, int64_t); | 
| 2616       break; | 2616       break; | 
| 2617     case kExternalTypedDataUint64ArrayCid: | 2617     case kExternalTypedDataUint64ArrayCid: | 
| 2618       TYPED_DATA_WRITE(uint64_t); | 2618       EXT_TYPED_DATA_WRITE(kTypedDataUint64ArrayCid, uint64_t); | 
| 2619       break; | 2619       break; | 
| 2620     case kExternalTypedDataFloat32ArrayCid: | 2620     case kExternalTypedDataFloat32ArrayCid: | 
| 2621       TYPED_DATA_WRITE(float);  // NOLINT. | 2621       EXT_TYPED_DATA_WRITE(kTypedDataFloat32ArrayCid, float);  // NOLINT. | 
| 2622       break; | 2622       break; | 
| 2623     case kExternalTypedDataFloat64ArrayCid: | 2623     case kExternalTypedDataFloat64ArrayCid: | 
| 2624       TYPED_DATA_WRITE(double);  // NOLINT. | 2624       EXT_TYPED_DATA_WRITE(kTypedDataFloat64ArrayCid, double);  // NOLINT. | 
| 2625       break; | 2625       break; | 
| 2626     default: | 2626     default: | 
| 2627       UNREACHABLE(); | 2627       UNREACHABLE(); | 
| 2628   } | 2628   } | 
| 2629 } | 2629 } | 
| 2630 #undef TYPED_DATA_WRITE | 2630 #undef TYPED_DATA_WRITE | 
|  | 2631 #undef EXT_TYPED_DATA_WRITE | 
| 2631 | 2632 | 
| 2632 | 2633 | 
| 2633 RawDartFunction* DartFunction::ReadFrom(SnapshotReader* reader, | 2634 RawDartFunction* DartFunction::ReadFrom(SnapshotReader* reader, | 
| 2634                                         intptr_t object_id, | 2635                                         intptr_t object_id, | 
| 2635                                         intptr_t tags, | 2636                                         intptr_t tags, | 
| 2636                                         Snapshot::Kind kind) { | 2637                                         Snapshot::Kind kind) { | 
| 2637   UNREACHABLE();  // DartFunction is an abstract class. | 2638   UNREACHABLE();  // DartFunction is an abstract class. | 
| 2638   return DartFunction::null(); | 2639   return DartFunction::null(); | 
| 2639 } | 2640 } | 
| 2640 | 2641 | 
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2796   // Write out the class and tags information. | 2797   // Write out the class and tags information. | 
| 2797   writer->WriteIndexedObject(kWeakPropertyCid); | 2798   writer->WriteIndexedObject(kWeakPropertyCid); | 
| 2798   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 2799   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 2799 | 2800 | 
| 2800   // Write out all the other fields. | 2801   // Write out all the other fields. | 
| 2801   writer->Write<RawObject*>(ptr()->key_); | 2802   writer->Write<RawObject*>(ptr()->key_); | 
| 2802   writer->Write<RawObject*>(ptr()->value_); | 2803   writer->Write<RawObject*>(ptr()->value_); | 
| 2803 } | 2804 } | 
| 2804 | 2805 | 
| 2805 }  // namespace dart | 2806 }  // namespace dart | 
| OLD | NEW | 
|---|