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

Side by Side Diff: vm/raw_object_snapshot.cc

Issue 10632009: Make the parser agnostic to the TokenStream implementation. This is the first step towards compacti… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: Created 8 years, 6 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
« no previous file with comments | « vm/raw_object.h ('k') | vm/scopes.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/visitor.h" 9 #include "vm/visitor.h"
10 10
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 reader->AddBackRef(object_id, &cls, kIsDeserialized); 44 reader->AddBackRef(object_id, &cls, kIsDeserialized);
45 45
46 // Set the object tags. 46 // Set the object tags.
47 cls.set_tags(tags); 47 cls.set_tags(tags);
48 48
49 // Set all non object fields. 49 // Set all non object fields.
50 cls.set_instance_size(reader->ReadIntptrValue()); 50 cls.set_instance_size(reader->ReadIntptrValue());
51 cls.set_type_arguments_instance_field_offset(reader->ReadIntptrValue()); 51 cls.set_type_arguments_instance_field_offset(reader->ReadIntptrValue());
52 cls.set_next_field_offset(reader->ReadIntptrValue()); 52 cls.set_next_field_offset(reader->ReadIntptrValue());
53 cls.set_num_native_fields(reader->ReadIntptrValue()); 53 cls.set_num_native_fields(reader->ReadIntptrValue());
54 cls.set_token_index(reader->ReadIntptrValue()); 54 cls.set_token_pos(reader->ReadIntptrValue());
55 cls.set_class_state(reader->Read<int8_t>()); 55 cls.set_class_state(reader->Read<int8_t>());
56 if (reader->Read<bool>()) { 56 if (reader->Read<bool>()) {
57 cls.set_is_const(); 57 cls.set_is_const();
58 } 58 }
59 if (reader->Read<bool>()) { 59 if (reader->Read<bool>()) {
60 cls.set_is_interface(); 60 cls.set_is_interface();
61 } 61 }
62 62
63 // Set all the object fields. 63 // Set all the object fields.
64 // TODO(5411462): Need to assert No GC can happen here, even though 64 // TODO(5411462): Need to assert No GC can happen here, even though
(...skipping 23 matching lines...) Expand all
88 // Write out the class and tags information. 88 // Write out the class and tags information.
89 writer->WriteObjectHeader(Object::kClassClass, writer->GetObjectTags(this)); 89 writer->WriteObjectHeader(Object::kClassClass, writer->GetObjectTags(this));
90 90
91 // Write out all the non object pointer fields. 91 // Write out all the non object pointer fields.
92 // NOTE: cpp_vtable_ is not written. 92 // NOTE: cpp_vtable_ is not written.
93 writer->Write<ObjectKind>(ptr()->instance_kind_); 93 writer->Write<ObjectKind>(ptr()->instance_kind_);
94 writer->WriteIntptrValue(ptr()->instance_size_); 94 writer->WriteIntptrValue(ptr()->instance_size_);
95 writer->WriteIntptrValue(ptr()->type_arguments_instance_field_offset_); 95 writer->WriteIntptrValue(ptr()->type_arguments_instance_field_offset_);
96 writer->WriteIntptrValue(ptr()->next_field_offset_); 96 writer->WriteIntptrValue(ptr()->next_field_offset_);
97 writer->WriteIntptrValue(ptr()->num_native_fields_); 97 writer->WriteIntptrValue(ptr()->num_native_fields_);
98 writer->WriteIntptrValue(ptr()->token_index_); 98 writer->WriteIntptrValue(ptr()->token_pos_);
99 writer->Write<int8_t>(ptr()->class_state_); 99 writer->Write<int8_t>(ptr()->class_state_);
100 writer->Write<bool>(ptr()->is_const_); 100 writer->Write<bool>(ptr()->is_const_);
101 writer->Write<bool>(ptr()->is_interface_); 101 writer->Write<bool>(ptr()->is_interface_);
102 102
103 // Write out all the object pointer fields. 103 // Write out all the object pointer fields.
104 SnapshotWriterVisitor visitor(writer); 104 SnapshotWriterVisitor visitor(writer);
105 visitor.VisitPointers(from(), to()); 105 visitor.VisitPointers(from(), to());
106 } else { 106 } else {
107 writer->WriteClassId(this); 107 writer->WriteClassId(this);
108 } 108 }
109 } 109 }
110 110
111 111
112 RawUnresolvedClass* UnresolvedClass::ReadFrom(SnapshotReader* reader, 112 RawUnresolvedClass* UnresolvedClass::ReadFrom(SnapshotReader* reader,
113 intptr_t object_id, 113 intptr_t object_id,
114 intptr_t tags, 114 intptr_t tags,
115 Snapshot::Kind kind) { 115 Snapshot::Kind kind) {
116 ASSERT(reader != NULL); 116 ASSERT(reader != NULL);
117 117
118 // Allocate parameterized type object. 118 // Allocate parameterized type object.
119 UnresolvedClass& unresolved_class = UnresolvedClass::ZoneHandle( 119 UnresolvedClass& unresolved_class = UnresolvedClass::ZoneHandle(
120 reader->isolate(), NEW_OBJECT(UnresolvedClass)); 120 reader->isolate(), NEW_OBJECT(UnresolvedClass));
121 reader->AddBackRef(object_id, &unresolved_class, kIsDeserialized); 121 reader->AddBackRef(object_id, &unresolved_class, kIsDeserialized);
122 122
123 // Set the object tags. 123 // Set the object tags.
124 unresolved_class.set_tags(tags); 124 unresolved_class.set_tags(tags);
125 125
126 // Set all non object fields. 126 // Set all non object fields.
127 unresolved_class.set_token_index(reader->ReadIntptrValue()); 127 unresolved_class.set_token_pos(reader->ReadIntptrValue());
128 128
129 // Set all the object fields. 129 // Set all the object fields.
130 // TODO(5411462): Need to assert No GC can happen here, even though 130 // TODO(5411462): Need to assert No GC can happen here, even though
131 // allocations may happen. 131 // allocations may happen.
132 intptr_t num_flds = (unresolved_class.raw()->to() - 132 intptr_t num_flds = (unresolved_class.raw()->to() -
133 unresolved_class.raw()->from()); 133 unresolved_class.raw()->from());
134 for (intptr_t i = 0; i <= num_flds; i++) { 134 for (intptr_t i = 0; i <= num_flds; i++) {
135 *(unresolved_class.raw()->from() + i) = reader->ReadObjectRef(); 135 *(unresolved_class.raw()->from() + i) = reader->ReadObjectRef();
136 } 136 }
137 return unresolved_class.raw(); 137 return unresolved_class.raw();
138 } 138 }
139 139
140 140
141 void RawUnresolvedClass::WriteTo(SnapshotWriter* writer, 141 void RawUnresolvedClass::WriteTo(SnapshotWriter* writer,
142 intptr_t object_id, 142 intptr_t object_id,
143 Snapshot::Kind kind) { 143 Snapshot::Kind kind) {
144 ASSERT(writer != NULL); 144 ASSERT(writer != NULL);
145 145
146 // Write out the serialization header value for this object. 146 // Write out the serialization header value for this object.
147 writer->WriteSerializationMarker(kInlined, object_id); 147 writer->WriteSerializationMarker(kInlined, object_id);
148 148
149 // Write out the class and tags information. 149 // Write out the class and tags information.
150 writer->WriteObjectHeader(Object::kUnresolvedClassClass, 150 writer->WriteObjectHeader(Object::kUnresolvedClassClass,
151 writer->GetObjectTags(this)); 151 writer->GetObjectTags(this));
152 152
153 // Write out all the non object pointer fields. 153 // Write out all the non object pointer fields.
154 writer->WriteIntptrValue(ptr()->token_index_); 154 writer->WriteIntptrValue(ptr()->token_pos_);
155 155
156 // Write out all the object pointer fields. 156 // Write out all the object pointer fields.
157 SnapshotWriterVisitor visitor(writer); 157 SnapshotWriterVisitor visitor(writer);
158 visitor.VisitPointers(from(), to()); 158 visitor.VisitPointers(from(), to());
159 } 159 }
160 160
161 161
162 RawAbstractType* AbstractType::ReadFrom(SnapshotReader* reader, 162 RawAbstractType* AbstractType::ReadFrom(SnapshotReader* reader,
163 intptr_t object_id, 163 intptr_t object_id,
164 intptr_t tags, 164 intptr_t tags,
(...skipping 18 matching lines...) Expand all
183 183
184 // Allocate parameterized type object. 184 // Allocate parameterized type object.
185 Type& parameterized_type = Type::ZoneHandle( 185 Type& parameterized_type = Type::ZoneHandle(
186 reader->isolate(), NEW_OBJECT(Type)); 186 reader->isolate(), NEW_OBJECT(Type));
187 reader->AddBackRef(object_id, &parameterized_type, kIsDeserialized); 187 reader->AddBackRef(object_id, &parameterized_type, kIsDeserialized);
188 188
189 // Set the object tags. 189 // Set the object tags.
190 parameterized_type.set_tags(tags); 190 parameterized_type.set_tags(tags);
191 191
192 // Set all non object fields. 192 // Set all non object fields.
193 parameterized_type.set_token_index(reader->ReadIntptrValue()); 193 parameterized_type.set_token_pos(reader->ReadIntptrValue());
194 parameterized_type.set_type_state(reader->Read<int8_t>()); 194 parameterized_type.set_type_state(reader->Read<int8_t>());
195 195
196 // Set all the object fields. 196 // Set all the object fields.
197 // TODO(5411462): Need to assert No GC can happen here, even though 197 // TODO(5411462): Need to assert No GC can happen here, even though
198 // allocations may happen. 198 // allocations may happen.
199 intptr_t num_flds = (parameterized_type.raw()->to() - 199 intptr_t num_flds = (parameterized_type.raw()->to() -
200 parameterized_type.raw()->from()); 200 parameterized_type.raw()->from());
201 for (intptr_t i = 0; i <= num_flds; i++) { 201 for (intptr_t i = 0; i <= num_flds; i++) {
202 *(parameterized_type.raw()->from() + i) = reader->ReadObjectImpl(); 202 *(parameterized_type.raw()->from() + i) = reader->ReadObjectImpl();
203 } 203 }
(...skipping 11 matching lines...) Expand all
215 Snapshot::Kind kind) { 215 Snapshot::Kind kind) {
216 ASSERT(writer != NULL); 216 ASSERT(writer != NULL);
217 217
218 // Write out the serialization header value for this object. 218 // Write out the serialization header value for this object.
219 writer->WriteSerializationMarker(kInlined, object_id); 219 writer->WriteSerializationMarker(kInlined, object_id);
220 220
221 // Write out the class and tags information. 221 // Write out the class and tags information.
222 writer->WriteObjectHeader(Object::kTypeClass, writer->GetObjectTags(this)); 222 writer->WriteObjectHeader(Object::kTypeClass, writer->GetObjectTags(this));
223 223
224 // Write out all the non object pointer fields. 224 // Write out all the non object pointer fields.
225 writer->WriteIntptrValue(ptr()->token_index_); 225 writer->WriteIntptrValue(ptr()->token_pos_);
226 writer->Write<int8_t>(ptr()->type_state_); 226 writer->Write<int8_t>(ptr()->type_state_);
227 227
228 // Write out all the object pointer fields. 228 // Write out all the object pointer fields.
229 SnapshotWriterVisitor visitor(writer, false); 229 SnapshotWriterVisitor visitor(writer, false);
230 visitor.VisitPointers(from(), to()); 230 visitor.VisitPointers(from(), to());
231 } 231 }
232 232
233 233
234 RawTypeParameter* TypeParameter::ReadFrom(SnapshotReader* reader, 234 RawTypeParameter* TypeParameter::ReadFrom(SnapshotReader* reader,
235 intptr_t object_id, 235 intptr_t object_id,
236 intptr_t tags, 236 intptr_t tags,
237 Snapshot::Kind kind) { 237 Snapshot::Kind kind) {
238 ASSERT(reader != NULL); 238 ASSERT(reader != NULL);
239 239
240 // Allocate type parameter object. 240 // Allocate type parameter object.
241 TypeParameter& type_parameter = TypeParameter::ZoneHandle( 241 TypeParameter& type_parameter = TypeParameter::ZoneHandle(
242 reader->isolate(), NEW_OBJECT(TypeParameter)); 242 reader->isolate(), NEW_OBJECT(TypeParameter));
243 reader->AddBackRef(object_id, &type_parameter, kIsDeserialized); 243 reader->AddBackRef(object_id, &type_parameter, kIsDeserialized);
244 244
245 // Set the object tags. 245 // Set the object tags.
246 type_parameter.set_tags(tags); 246 type_parameter.set_tags(tags);
247 247
248 // Set all non object fields. 248 // Set all non object fields.
249 type_parameter.set_index(reader->ReadIntptrValue()); 249 type_parameter.set_index(reader->ReadIntptrValue());
250 type_parameter.set_token_index(reader->ReadIntptrValue()); 250 type_parameter.set_token_pos(reader->ReadIntptrValue());
251 type_parameter.set_type_state(reader->Read<int8_t>()); 251 type_parameter.set_type_state(reader->Read<int8_t>());
252 252
253 // Set all the object fields. 253 // Set all the object fields.
254 // TODO(5411462): Need to assert No GC can happen here, even though 254 // TODO(5411462): Need to assert No GC can happen here, even though
255 // allocations may happen. 255 // allocations may happen.
256 intptr_t num_flds = (type_parameter.raw()->to() - 256 intptr_t num_flds = (type_parameter.raw()->to() -
257 type_parameter.raw()->from()); 257 type_parameter.raw()->from());
258 for (intptr_t i = 0; i <= num_flds; i++) { 258 for (intptr_t i = 0; i <= num_flds; i++) {
259 *(type_parameter.raw()->from() + i) = reader->ReadObjectImpl(); 259 *(type_parameter.raw()->from() + i) = reader->ReadObjectImpl();
260 } 260 }
261 261
262 return type_parameter.raw(); 262 return type_parameter.raw();
263 } 263 }
264 264
265 265
266 void RawTypeParameter::WriteTo(SnapshotWriter* writer, 266 void RawTypeParameter::WriteTo(SnapshotWriter* writer,
267 intptr_t object_id, 267 intptr_t object_id,
268 Snapshot::Kind kind) { 268 Snapshot::Kind kind) {
269 ASSERT(writer != NULL); 269 ASSERT(writer != NULL);
270 270
271 // Write out the serialization header value for this object. 271 // Write out the serialization header value for this object.
272 writer->WriteSerializationMarker(kInlined, object_id); 272 writer->WriteSerializationMarker(kInlined, object_id);
273 273
274 // Write out the class and tags information. 274 // Write out the class and tags information.
275 writer->WriteObjectHeader(Object::kTypeParameterClass, 275 writer->WriteObjectHeader(Object::kTypeParameterClass,
276 writer->GetObjectTags(this)); 276 writer->GetObjectTags(this));
277 277
278 // Write out all the non object pointer fields. 278 // Write out all the non object pointer fields.
279 writer->WriteIntptrValue(ptr()->index_); 279 writer->WriteIntptrValue(ptr()->index_);
280 writer->WriteIntptrValue(ptr()->token_index_); 280 writer->WriteIntptrValue(ptr()->token_pos_);
281 writer->Write<int8_t>(ptr()->type_state_); 281 writer->Write<int8_t>(ptr()->type_state_);
282 282
283 // Write out all the object pointer fields. 283 // Write out all the object pointer fields.
284 SnapshotWriterVisitor visitor(writer, false); 284 SnapshotWriterVisitor visitor(writer, false);
285 visitor.VisitPointers(from(), to()); 285 visitor.VisitPointers(from(), to());
286 } 286 }
287 287
288 288
289 RawAbstractTypeArguments* AbstractTypeArguments::ReadFrom( 289 RawAbstractTypeArguments* AbstractTypeArguments::ReadFrom(
290 SnapshotReader* reader, 290 SnapshotReader* reader,
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 415
416 // Allocate function object. 416 // Allocate function object.
417 Function& func = Function::ZoneHandle( 417 Function& func = Function::ZoneHandle(
418 reader->isolate(), NEW_OBJECT(Function)); 418 reader->isolate(), NEW_OBJECT(Function));
419 reader->AddBackRef(object_id, &func, kIsDeserialized); 419 reader->AddBackRef(object_id, &func, kIsDeserialized);
420 420
421 // Set the object tags. 421 // Set the object tags.
422 func.set_tags(tags); 422 func.set_tags(tags);
423 423
424 // Set all the non object fields. 424 // Set all the non object fields.
425 func.set_token_index(reader->ReadIntptrValue()); 425 func.set_token_pos(reader->ReadIntptrValue());
426 func.set_end_token_index(reader->ReadIntptrValue()); 426 func.set_end_token_pos(reader->ReadIntptrValue());
427 func.set_num_fixed_parameters(reader->ReadIntptrValue()); 427 func.set_num_fixed_parameters(reader->ReadIntptrValue());
428 func.set_num_optional_parameters(reader->ReadIntptrValue()); 428 func.set_num_optional_parameters(reader->ReadIntptrValue());
429 func.set_usage_counter(reader->ReadIntptrValue()); 429 func.set_usage_counter(reader->ReadIntptrValue());
430 func.set_deoptimization_counter(reader->ReadIntptrValue()); 430 func.set_deoptimization_counter(reader->ReadIntptrValue());
431 func.set_kind(static_cast<RawFunction::Kind >(reader->ReadIntptrValue())); 431 func.set_kind(static_cast<RawFunction::Kind >(reader->ReadIntptrValue()));
432 func.set_is_static(reader->Read<bool>()); 432 func.set_is_static(reader->Read<bool>());
433 func.set_is_const(reader->Read<bool>()); 433 func.set_is_const(reader->Read<bool>());
434 func.set_is_optimizable(reader->Read<bool>()); 434 func.set_is_optimizable(reader->Read<bool>());
435 func.set_is_native(reader->Read<bool>()); 435 func.set_is_native(reader->Read<bool>());
436 436
(...skipping 17 matching lines...) Expand all
454 !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); 454 !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this)));
455 455
456 // Write out the serialization header value for this object. 456 // Write out the serialization header value for this object.
457 writer->WriteSerializationMarker(kInlined, object_id); 457 writer->WriteSerializationMarker(kInlined, object_id);
458 458
459 // Write out the class and tags information. 459 // Write out the class and tags information.
460 writer->WriteObjectHeader(Object::kFunctionClass, 460 writer->WriteObjectHeader(Object::kFunctionClass,
461 writer->GetObjectTags(this)); 461 writer->GetObjectTags(this));
462 462
463 // Write out all the non object fields. 463 // Write out all the non object fields.
464 writer->WriteIntptrValue(ptr()->token_index_); 464 writer->WriteIntptrValue(ptr()->token_pos_);
465 writer->WriteIntptrValue(ptr()->end_token_index_); 465 writer->WriteIntptrValue(ptr()->end_token_pos_);
466 writer->WriteIntptrValue(ptr()->num_fixed_parameters_); 466 writer->WriteIntptrValue(ptr()->num_fixed_parameters_);
467 writer->WriteIntptrValue(ptr()->num_optional_parameters_); 467 writer->WriteIntptrValue(ptr()->num_optional_parameters_);
468 writer->WriteIntptrValue(ptr()->usage_counter_); 468 writer->WriteIntptrValue(ptr()->usage_counter_);
469 writer->WriteIntptrValue(ptr()->deoptimization_counter_); 469 writer->WriteIntptrValue(ptr()->deoptimization_counter_);
470 writer->WriteIntptrValue(ptr()->kind_); 470 writer->WriteIntptrValue(ptr()->kind_);
471 writer->Write<bool>(ptr()->is_static_); 471 writer->Write<bool>(ptr()->is_static_);
472 writer->Write<bool>(ptr()->is_const_); 472 writer->Write<bool>(ptr()->is_const_);
473 writer->Write<bool>(ptr()->is_optimizable_); 473 writer->Write<bool>(ptr()->is_optimizable_);
474 writer->Write<bool>(ptr()->is_native_); 474 writer->Write<bool>(ptr()->is_native_);
475 475
(...skipping 11 matching lines...) Expand all
487 ASSERT(kind != Snapshot::kMessage && !RawObject::IsCreatedFromSnapshot(tags)); 487 ASSERT(kind != Snapshot::kMessage && !RawObject::IsCreatedFromSnapshot(tags));
488 488
489 // Allocate field object. 489 // Allocate field object.
490 Field& field = Field::ZoneHandle(reader->isolate(), NEW_OBJECT(Field)); 490 Field& field = Field::ZoneHandle(reader->isolate(), NEW_OBJECT(Field));
491 reader->AddBackRef(object_id, &field, kIsDeserialized); 491 reader->AddBackRef(object_id, &field, kIsDeserialized);
492 492
493 // Set the object tags. 493 // Set the object tags.
494 field.set_tags(tags); 494 field.set_tags(tags);
495 495
496 // Set all non object fields. 496 // Set all non object fields.
497 field.set_token_index(reader->ReadIntptrValue()); 497 field.set_token_pos(reader->ReadIntptrValue());
498 field.set_is_static(reader->Read<bool>()); 498 field.set_is_static(reader->Read<bool>());
499 field.set_is_final(reader->Read<bool>()); 499 field.set_is_final(reader->Read<bool>());
500 field.set_has_initializer(reader->Read<bool>()); 500 field.set_has_initializer(reader->Read<bool>());
501 501
502 // Set all the object fields. 502 // Set all the object fields.
503 // TODO(5411462): Need to assert No GC can happen here, even though 503 // TODO(5411462): Need to assert No GC can happen here, even though
504 // allocations may happen. 504 // allocations may happen.
505 intptr_t num_flds = (field.raw()->to() - field.raw()->from()); 505 intptr_t num_flds = (field.raw()->to() - field.raw()->from());
506 for (intptr_t i = 0; i <= num_flds; i++) { 506 for (intptr_t i = 0; i <= num_flds; i++) {
507 *(field.raw()->from() + i) = reader->ReadObjectRef(); 507 *(field.raw()->from() + i) = reader->ReadObjectRef();
(...skipping 10 matching lines...) Expand all
518 ASSERT(kind != Snapshot::kMessage && 518 ASSERT(kind != Snapshot::kMessage &&
519 !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); 519 !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this)));
520 520
521 // Write out the serialization header value for this object. 521 // Write out the serialization header value for this object.
522 writer->WriteSerializationMarker(kInlined, object_id); 522 writer->WriteSerializationMarker(kInlined, object_id);
523 523
524 // Write out the class and tags information. 524 // Write out the class and tags information.
525 writer->WriteObjectHeader(Object::kFieldClass, writer->GetObjectTags(this)); 525 writer->WriteObjectHeader(Object::kFieldClass, writer->GetObjectTags(this));
526 526
527 // Write out all the non object fields. 527 // Write out all the non object fields.
528 writer->WriteIntptrValue(ptr()->token_index_); 528 writer->WriteIntptrValue(ptr()->token_pos_);
529 writer->Write<bool>(ptr()->is_static_); 529 writer->Write<bool>(ptr()->is_static_);
530 writer->Write<bool>(ptr()->is_final_); 530 writer->Write<bool>(ptr()->is_final_);
531 writer->Write<bool>(ptr()->has_initializer_); 531 writer->Write<bool>(ptr()->has_initializer_);
532 532
533 // Write out all the object pointer fields. 533 // Write out all the object pointer fields.
534 SnapshotWriterVisitor visitor(writer); 534 SnapshotWriterVisitor visitor(writer);
535 visitor.VisitPointers(from(), to()); 535 visitor.VisitPointers(from(), to());
536 } 536 }
537 537
538 538
(...skipping 1430 matching lines...) Expand 10 before | Expand all | Expand 10 after
1969 writer->Write<RawObject*>(ptr()->num_bracket_expressions_); 1969 writer->Write<RawObject*>(ptr()->num_bracket_expressions_);
1970 writer->WriteObjectImpl(ptr()->pattern_); 1970 writer->WriteObjectImpl(ptr()->pattern_);
1971 writer->WriteIntptrValue(ptr()->type_); 1971 writer->WriteIntptrValue(ptr()->type_);
1972 writer->WriteIntptrValue(ptr()->flags_); 1972 writer->WriteIntptrValue(ptr()->flags_);
1973 1973
1974 // Do not write out the data part which is native. 1974 // Do not write out the data part which is native.
1975 } 1975 }
1976 1976
1977 1977
1978 } // namespace dart 1978 } // namespace dart
OLDNEW
« no previous file with comments | « vm/raw_object.h ('k') | vm/scopes.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698