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/snapshot.h" | 10 #include "vm/snapshot.h" |
(...skipping 816 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 | 827 |
828 int64_t value_; | 828 int64_t value_; |
829 | 829 |
830 friend class SnapshotReader; | 830 friend class SnapshotReader; |
831 }; | 831 }; |
832 | 832 |
833 | 833 |
834 class RawBigint : public RawInteger { | 834 class RawBigint : public RawInteger { |
835 RAW_HEAP_OBJECT_IMPLEMENTATION(Bigint); | 835 RAW_HEAP_OBJECT_IMPLEMENTATION(Bigint); |
836 | 836 |
837 // Note that the structure is not necessarily valid unless tweaked | 837 // Actual length at the time of allocation (later we may clamp the |
838 // by Bigint::BNAddr(). | 838 // operational length but we need to maintain a consistent object |
839 BIGNUM bn_; | 839 // length so that the object can be traversed during GC). |
| 840 intptr_t allocated_length_; |
840 | 841 |
841 // Variable length data follows here. | 842 // Operation length of the bigint object, clamping can cause this length |
842 BN_ULONG data_[0]; | 843 // to be reduced. If the signed_length_ is negative then the number |
| 844 // is negative. |
| 845 intptr_t signed_length_; |
| 846 |
| 847 // A sequence of Chunks (typedef in Bignum) representing bignum digits. |
| 848 // Bignum::Chunk chunks_[Utils::Abs(signed_length_)]; |
| 849 uint8_t data_[0]; |
843 }; | 850 }; |
844 | 851 |
845 | 852 |
846 class RawDouble : public RawNumber { | 853 class RawDouble : public RawNumber { |
847 RAW_HEAP_OBJECT_IMPLEMENTATION(Double); | 854 RAW_HEAP_OBJECT_IMPLEMENTATION(Double); |
848 | 855 |
849 double value_; | 856 double value_; |
850 | 857 |
851 friend class SnapshotReader; | 858 friend class SnapshotReader; |
852 }; | 859 }; |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1098 RawString* target_name_; // Name of target function. | 1105 RawString* target_name_; // Name of target function. |
1099 RawArray* ic_data_; // Contains test classes and target function. | 1106 RawArray* ic_data_; // Contains test classes and target function. |
1100 intptr_t id_; // Parser node id corresponding to this IC. | 1107 intptr_t id_; // Parser node id corresponding to this IC. |
1101 intptr_t num_args_tested_; // Number of arguments tested in IC. | 1108 intptr_t num_args_tested_; // Number of arguments tested in IC. |
1102 }; | 1109 }; |
1103 | 1110 |
1104 | 1111 |
1105 } // namespace dart | 1112 } // namespace dart |
1106 | 1113 |
1107 #endif // VM_RAW_OBJECT_H_ | 1114 #endif // VM_RAW_OBJECT_H_ |
OLD | NEW |