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

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

Issue 8383029: Implement external strings. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fully displace external string metadata Created 9 years, 1 month 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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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/object_store.h" 5 #include "vm/object_store.h"
6 6
7 #include "vm/isolate.h" 7 #include "vm/isolate.h"
8 #include "vm/object.h" 8 #include "vm/object.h"
9 #include "vm/raw_object.h" 9 #include "vm/raw_object.h"
10 #include "vm/visitor.h" 10 #include "vm/visitor.h"
11 11
12 namespace dart { 12 namespace dart {
13 13
14 ObjectStore::ObjectStore() 14 ObjectStore::ObjectStore()
15 : object_class_(Class::null()), 15 : object_class_(Class::null()),
16 function_interface_(Type::null()), 16 function_interface_(Type::null()),
17 number_interface_(Type::null()), 17 number_interface_(Type::null()),
18 int_interface_(Type::null()), 18 int_interface_(Type::null()),
19 smi_class_(Class::null()), 19 smi_class_(Class::null()),
20 mint_class_(Class::null()), 20 mint_class_(Class::null()),
21 bigint_class_(Class::null()), 21 bigint_class_(Class::null()),
22 double_interface_(Type::null()), 22 double_interface_(Type::null()),
23 double_class_(Class::null()), 23 double_class_(Class::null()),
24 string_interface_(Type::null()), 24 string_interface_(Type::null()),
25 one_byte_string_class_(Class::null()), 25 one_byte_string_class_(Class::null()),
26 two_byte_string_class_(Class::null()), 26 two_byte_string_class_(Class::null()),
27 four_byte_string_class_(Class::null()), 27 four_byte_string_class_(Class::null()),
Ivan Posva 2011/11/18 19:36:44 New fields are not being initialized.
cshapiro 2011/11/19 01:08:29 Done. I also added an initialization for the new
28 bool_interface_(Type::null()), 28 bool_interface_(Type::null()),
29 bool_class_(Class::null()), 29 bool_class_(Class::null()),
30 list_interface_(Type::null()), 30 list_interface_(Type::null()),
31 array_class_(Class::null()), 31 array_class_(Class::null()),
32 immutable_array_class_(Class::null()), 32 immutable_array_class_(Class::null()),
33 unhandled_exception_class_(Class::null()), 33 unhandled_exception_class_(Class::null()),
34 stacktrace_class_(Class::null()), 34 stacktrace_class_(Class::null()),
35 jsregexp_class_(Class::null()), 35 jsregexp_class_(Class::null()),
36 true_value_(Bool::null()), 36 true_value_(Bool::null()),
37 false_value_(Bool::null()), 37 false_value_(Bool::null()),
(...skipping 29 matching lines...) Expand all
67 RawClass* ObjectStore::GetClass(int index) { 67 RawClass* ObjectStore::GetClass(int index) {
68 switch (index) { 68 switch (index) {
69 case kObjectClass: return object_class_; 69 case kObjectClass: return object_class_;
70 case kSmiClass: return smi_class_; 70 case kSmiClass: return smi_class_;
71 case kMintClass: return mint_class_; 71 case kMintClass: return mint_class_;
72 case kBigintClass: return bigint_class_; 72 case kBigintClass: return bigint_class_;
73 case kDoubleClass: return double_class_; 73 case kDoubleClass: return double_class_;
74 case kOneByteStringClass: return one_byte_string_class_; 74 case kOneByteStringClass: return one_byte_string_class_;
75 case kTwoByteStringClass: return two_byte_string_class_; 75 case kTwoByteStringClass: return two_byte_string_class_;
76 case kFourByteStringClass: return four_byte_string_class_; 76 case kFourByteStringClass: return four_byte_string_class_;
77 case kExternalOneByteStringClass: return external_one_byte_string_class_;
78 case kExternalTwoByteStringClass: return external_two_byte_string_class_;
79 case kExternalFourByteStringClass: return external_four_byte_string_class_;
77 case kBoolClass: return bool_class_; 80 case kBoolClass: return bool_class_;
78 case kArrayClass: return array_class_; 81 case kArrayClass: return array_class_;
79 case kImmutableArrayClass: return immutable_array_class_; 82 case kImmutableArrayClass: return immutable_array_class_;
80 case kUnhandledExceptionClass: return unhandled_exception_class_; 83 case kUnhandledExceptionClass: return unhandled_exception_class_;
81 case kStacktraceClass: return stacktrace_class_; 84 case kStacktraceClass: return stacktrace_class_;
82 case kJSRegExpClass: return jsregexp_class_; 85 case kJSRegExpClass: return jsregexp_class_;
83 default: break; 86 default: break;
84 } 87 }
85 UNREACHABLE(); 88 UNREACHABLE();
86 return Class::null(); 89 return Class::null();
(...skipping 11 matching lines...) Expand all
98 } else if (raw_class == bigint_class_) { 101 } else if (raw_class == bigint_class_) {
99 return kBigintClass; 102 return kBigintClass;
100 } else if (raw_class == double_class_) { 103 } else if (raw_class == double_class_) {
101 return kDoubleClass; 104 return kDoubleClass;
102 } else if (raw_class == one_byte_string_class_) { 105 } else if (raw_class == one_byte_string_class_) {
103 return kOneByteStringClass; 106 return kOneByteStringClass;
104 } else if (raw_class == two_byte_string_class_) { 107 } else if (raw_class == two_byte_string_class_) {
105 return kTwoByteStringClass; 108 return kTwoByteStringClass;
106 } else if (raw_class == four_byte_string_class_) { 109 } else if (raw_class == four_byte_string_class_) {
107 return kFourByteStringClass; 110 return kFourByteStringClass;
111 } else if (raw_class == external_one_byte_string_class_) {
112 return kExternalOneByteStringClass;
113 } else if (raw_class == external_two_byte_string_class_) {
114 return kExternalTwoByteStringClass;
115 } else if (raw_class == external_four_byte_string_class_) {
116 return kExternalFourByteStringClass;
108 } else if (raw_class == bool_class_) { 117 } else if (raw_class == bool_class_) {
109 return kBoolClass; 118 return kBoolClass;
110 } else if (raw_class == array_class_) { 119 } else if (raw_class == array_class_) {
111 return kArrayClass; 120 return kArrayClass;
112 } else if (raw_class == immutable_array_class_) { 121 } else if (raw_class == immutable_array_class_) {
113 return kImmutableArrayClass; 122 return kImmutableArrayClass;
114 } else if (raw_class == unhandled_exception_class_) { 123 } else if (raw_class == unhandled_exception_class_) {
115 return kUnhandledExceptionClass; 124 return kUnhandledExceptionClass;
116 } else if (raw_class == stacktrace_class_) { 125 } else if (raw_class == stacktrace_class_) {
117 return kStacktraceClass; 126 return kStacktraceClass;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 return kBoolInterface; 173 return kBoolInterface;
165 } else if (raw_type == string_interface()) { 174 } else if (raw_type == string_interface()) {
166 return kStringInterface; 175 return kStringInterface;
167 } else if (raw_type == list_interface()) { 176 } else if (raw_type == list_interface()) {
168 return kListInterface; 177 return kListInterface;
169 } 178 }
170 return kInvalidIndex; 179 return kInvalidIndex;
171 } 180 }
172 181
173 } // namespace dart 182 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698