Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Side by Side Diff: runtime/vm/raw_object_snapshot.cc

Issue 12887006: Version 0.4.3.3 . (Closed) Base URL: http://dart.googlecode.com/svn/trunk/dart/
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698