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 #ifndef VM_RAW_OBJECT_H_ | 5 #ifndef VM_RAW_OBJECT_H_ |
6 #define VM_RAW_OBJECT_H_ | 6 #define VM_RAW_OBJECT_H_ |
7 | 7 |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/globals.h" | 9 #include "vm/globals.h" |
10 #include "vm/token.h" | 10 #include "vm/token.h" |
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
652 }; | 652 }; |
653 | 653 |
654 | 654 |
655 class RawTokenStream : public RawObject { | 655 class RawTokenStream : public RawObject { |
656 RAW_HEAP_OBJECT_IMPLEMENTATION(TokenStream); | 656 RAW_HEAP_OBJECT_IMPLEMENTATION(TokenStream); |
657 | 657 |
658 RawObject** from() { | 658 RawObject** from() { |
659 return reinterpret_cast<RawObject**>(&ptr()->private_key_); | 659 return reinterpret_cast<RawObject**>(&ptr()->private_key_); |
660 } | 660 } |
661 RawString* private_key_; // Key used for private identifiers. | 661 RawString* private_key_; // Key used for private identifiers. |
662 RawSmi* length_; // Length of token stream. | |
663 RawArray* token_objects_; | 662 RawArray* token_objects_; |
| 663 RawExternalUint8Array* stream_; |
664 RawObject** to() { | 664 RawObject** to() { |
665 return reinterpret_cast<RawObject**>(&ptr()->token_objects_); | 665 return reinterpret_cast<RawObject**>(&ptr()->stream_); |
666 } | 666 } |
667 // Variable length data follows here. | |
668 uint8_t data_[0]; | |
669 | 667 |
670 friend class SnapshotReader; | 668 friend class SnapshotReader; |
671 }; | 669 }; |
672 | 670 |
673 | 671 |
674 class RawScript : public RawObject { | 672 class RawScript : public RawObject { |
675 public: | 673 public: |
676 enum Kind { | 674 enum Kind { |
677 kScriptTag = 0, | 675 kScriptTag = 0, |
678 kLibraryTag, | 676 kLibraryTag, |
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1329 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalInt8Array); | 1327 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalInt8Array); |
1330 | 1328 |
1331 ExternalByteArrayData<int8_t>* external_data_; | 1329 ExternalByteArrayData<int8_t>* external_data_; |
1332 }; | 1330 }; |
1333 | 1331 |
1334 | 1332 |
1335 class RawExternalUint8Array : public RawByteArray { | 1333 class RawExternalUint8Array : public RawByteArray { |
1336 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalUint8Array); | 1334 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalUint8Array); |
1337 | 1335 |
1338 ExternalByteArrayData<uint8_t>* external_data_; | 1336 ExternalByteArrayData<uint8_t>* external_data_; |
| 1337 |
| 1338 friend class TokenStream; |
| 1339 friend class RawTokenStream; |
1339 }; | 1340 }; |
1340 | 1341 |
1341 | 1342 |
1342 class RawExternalInt16Array : public RawByteArray { | 1343 class RawExternalInt16Array : public RawByteArray { |
1343 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalInt16Array); | 1344 RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalInt16Array); |
1344 | 1345 |
1345 ExternalByteArrayData<int16_t>* external_data_; | 1346 ExternalByteArrayData<int16_t>* external_data_; |
1346 }; | 1347 }; |
1347 | 1348 |
1348 | 1349 |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1589 kExternalUint64ArrayCid == kByteArrayCid + 18 && | 1590 kExternalUint64ArrayCid == kByteArrayCid + 18 && |
1590 kExternalFloat32ArrayCid == kByteArrayCid + 19 && | 1591 kExternalFloat32ArrayCid == kByteArrayCid + 19 && |
1591 kExternalFloat64ArrayCid == kByteArrayCid + 20 && | 1592 kExternalFloat64ArrayCid == kByteArrayCid + 20 && |
1592 kStacktraceCid == kByteArrayCid + 21); | 1593 kStacktraceCid == kByteArrayCid + 21); |
1593 return (index >= kByteArrayCid && index <= kExternalFloat64ArrayCid); | 1594 return (index >= kByteArrayCid && index <= kExternalFloat64ArrayCid); |
1594 } | 1595 } |
1595 | 1596 |
1596 } // namespace dart | 1597 } // namespace dart |
1597 | 1598 |
1598 #endif // VM_RAW_OBJECT_H_ | 1599 #endif // VM_RAW_OBJECT_H_ |
OLD | NEW |