| 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 #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 16 matching lines...) Expand all  Loading... | 
| 27 RawClass* Class::ReadFrom(SnapshotReader* reader, | 27 RawClass* Class::ReadFrom(SnapshotReader* reader, | 
| 28                           intptr_t object_id, | 28                           intptr_t object_id, | 
| 29                           intptr_t tags, | 29                           intptr_t tags, | 
| 30                           Snapshot::Kind kind) { | 30                           Snapshot::Kind kind) { | 
| 31   ASSERT(reader != NULL); | 31   ASSERT(reader != NULL); | 
| 32 | 32 | 
| 33   Class& cls = Class::ZoneHandle(reader->isolate(), Class::null()); | 33   Class& cls = Class::ZoneHandle(reader->isolate(), Class::null()); | 
| 34   if ((kind == Snapshot::kFull) || | 34   if ((kind == Snapshot::kFull) || | 
| 35       (kind == Snapshot::kScript && !RawObject::IsCreatedFromSnapshot(tags))) { | 35       (kind == Snapshot::kScript && !RawObject::IsCreatedFromSnapshot(tags))) { | 
| 36     // Read in the base information. | 36     // Read in the base information. | 
| 37     ObjectKind object_kind = reader->Read<ObjectKind>(); | 37     intptr_t class_id = reader->ReadIntptrValue(); | 
|  | 38     bool is_signature_class = reader->Read<bool>(); | 
| 38 | 39 | 
| 39     // Allocate class object of specified kind. | 40     // Allocate class object of specified kind. | 
| 40     if (kind == Snapshot::kFull) { | 41     if (kind == Snapshot::kFull) { | 
| 41       cls = reader->NewClass(object_kind); | 42       cls = reader->NewClass(class_id, is_signature_class); | 
| 42     } else { | 43     } else { | 
| 43       cls = Class::GetClass(object_kind); | 44       cls = Class::GetClass(class_id, is_signature_class); | 
| 44     } | 45     } | 
| 45     reader->AddBackRef(object_id, &cls, kIsDeserialized); | 46     reader->AddBackRef(object_id, &cls, kIsDeserialized); | 
| 46 | 47 | 
| 47     // Set the object tags. | 48     // Set the object tags. | 
| 48     cls.set_tags(tags); | 49     cls.set_tags(tags); | 
| 49 | 50 | 
| 50     // Set all non object fields. | 51     // Set all non object fields. | 
| 51     cls.set_instance_size(reader->ReadIntptrValue()); | 52     cls.set_instance_size(reader->ReadIntptrValue()); | 
| 52     cls.set_type_arguments_instance_field_offset(reader->ReadIntptrValue()); | 53     cls.set_type_arguments_instance_field_offset(reader->ReadIntptrValue()); | 
| 53     cls.set_next_field_offset(reader->ReadIntptrValue()); | 54     cls.set_next_field_offset(reader->ReadIntptrValue()); | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 80                        Snapshot::Kind kind) { | 81                        Snapshot::Kind kind) { | 
| 81   ASSERT(writer != NULL); | 82   ASSERT(writer != NULL); | 
| 82 | 83 | 
| 83   // Write out the serialization header value for this object. | 84   // Write out the serialization header value for this object. | 
| 84   writer->WriteInlinedObjectHeader(object_id); | 85   writer->WriteInlinedObjectHeader(object_id); | 
| 85 | 86 | 
| 86   if ((kind == Snapshot::kFull) || | 87   if ((kind == Snapshot::kFull) || | 
| 87       (kind == Snapshot::kScript && | 88       (kind == Snapshot::kScript && | 
| 88        !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this)))) { | 89        !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this)))) { | 
| 89     // Write out the class and tags information. | 90     // Write out the class and tags information. | 
| 90     writer->WriteVMIsolateObject(Object::kClassClass); | 91     writer->WriteVMIsolateObject(kClassCid); | 
| 91     writer->WriteIntptrValue(writer->GetObjectTags(this)); | 92     writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 92 | 93 | 
| 93     // Write out all the non object pointer fields. | 94     // Write out all the non object pointer fields. | 
| 94     // NOTE: cpp_vtable_ is not written. | 95     // NOTE: cpp_vtable_ is not written. | 
| 95     writer->Write<ObjectKind>(ptr()->instance_kind_); | 96     writer->WriteIntptrValue(ptr()->id_); | 
|  | 97     writer->Write<bool>(Class::IsSignatureClass(this) ? true : false); | 
| 96     writer->WriteIntptrValue(ptr()->instance_size_); | 98     writer->WriteIntptrValue(ptr()->instance_size_); | 
| 97     writer->WriteIntptrValue(ptr()->type_arguments_instance_field_offset_); | 99     writer->WriteIntptrValue(ptr()->type_arguments_instance_field_offset_); | 
| 98     writer->WriteIntptrValue(ptr()->next_field_offset_); | 100     writer->WriteIntptrValue(ptr()->next_field_offset_); | 
| 99     writer->WriteIntptrValue(ptr()->num_native_fields_); | 101     writer->WriteIntptrValue(ptr()->num_native_fields_); | 
| 100     writer->WriteIntptrValue(ptr()->token_pos_); | 102     writer->WriteIntptrValue(ptr()->token_pos_); | 
| 101     writer->Write<int8_t>(ptr()->class_state_); | 103     writer->Write<int8_t>(ptr()->class_state_); | 
| 102     writer->Write<bool>(ptr()->is_const_); | 104     writer->Write<bool>(ptr()->is_const_); | 
| 103     writer->Write<bool>(ptr()->is_interface_); | 105     writer->Write<bool>(ptr()->is_interface_); | 
| 104 | 106 | 
| 105     // Write out all the object pointer fields. | 107     // Write out all the object pointer fields. | 
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 142 | 144 | 
| 143 void RawUnresolvedClass::WriteTo(SnapshotWriter* writer, | 145 void RawUnresolvedClass::WriteTo(SnapshotWriter* writer, | 
| 144                                  intptr_t object_id, | 146                                  intptr_t object_id, | 
| 145                                  Snapshot::Kind kind) { | 147                                  Snapshot::Kind kind) { | 
| 146   ASSERT(writer != NULL); | 148   ASSERT(writer != NULL); | 
| 147 | 149 | 
| 148   // Write out the serialization header value for this object. | 150   // Write out the serialization header value for this object. | 
| 149   writer->WriteInlinedObjectHeader(object_id); | 151   writer->WriteInlinedObjectHeader(object_id); | 
| 150 | 152 | 
| 151   // Write out the class and tags information. | 153   // Write out the class and tags information. | 
| 152   writer->WriteVMIsolateObject(Object::kUnresolvedClassClass); | 154   writer->WriteVMIsolateObject(kUnresolvedClassCid); | 
| 153   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 155   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 154 | 156 | 
| 155   // Write out all the non object pointer fields. | 157   // Write out all the non object pointer fields. | 
| 156   writer->WriteIntptrValue(ptr()->token_pos_); | 158   writer->WriteIntptrValue(ptr()->token_pos_); | 
| 157 | 159 | 
| 158   // Write out all the object pointer fields. | 160   // Write out all the object pointer fields. | 
| 159   SnapshotWriterVisitor visitor(writer); | 161   SnapshotWriterVisitor visitor(writer); | 
| 160   visitor.VisitPointers(from(), to()); | 162   visitor.VisitPointers(from(), to()); | 
| 161 } | 163 } | 
| 162 | 164 | 
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 214 | 216 | 
| 215 void RawType::WriteTo(SnapshotWriter* writer, | 217 void RawType::WriteTo(SnapshotWriter* writer, | 
| 216                       intptr_t object_id, | 218                       intptr_t object_id, | 
| 217                       Snapshot::Kind kind) { | 219                       Snapshot::Kind kind) { | 
| 218   ASSERT(writer != NULL); | 220   ASSERT(writer != NULL); | 
| 219 | 221 | 
| 220   // Write out the serialization header value for this object. | 222   // Write out the serialization header value for this object. | 
| 221   writer->WriteInlinedObjectHeader(object_id); | 223   writer->WriteInlinedObjectHeader(object_id); | 
| 222 | 224 | 
| 223   // Write out the class and tags information. | 225   // Write out the class and tags information. | 
| 224   writer->WriteVMIsolateObject(Object::kTypeClass); | 226   writer->WriteVMIsolateObject(kTypeCid); | 
| 225   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 227   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 226 | 228 | 
| 227   // Write out all the non object pointer fields. | 229   // Write out all the non object pointer fields. | 
| 228   writer->WriteIntptrValue(ptr()->token_pos_); | 230   writer->WriteIntptrValue(ptr()->token_pos_); | 
| 229   writer->Write<int8_t>(ptr()->type_state_); | 231   writer->Write<int8_t>(ptr()->type_state_); | 
| 230 | 232 | 
| 231   // Write out all the object pointer fields. | 233   // Write out all the object pointer fields. | 
| 232   SnapshotWriterVisitor visitor(writer, false); | 234   SnapshotWriterVisitor visitor(writer, false); | 
| 233   visitor.VisitPointers(from(), to()); | 235   visitor.VisitPointers(from(), to()); | 
| 234 } | 236 } | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 268 | 270 | 
| 269 void RawTypeParameter::WriteTo(SnapshotWriter* writer, | 271 void RawTypeParameter::WriteTo(SnapshotWriter* writer, | 
| 270                                intptr_t object_id, | 272                                intptr_t object_id, | 
| 271                                Snapshot::Kind kind) { | 273                                Snapshot::Kind kind) { | 
| 272   ASSERT(writer != NULL); | 274   ASSERT(writer != NULL); | 
| 273 | 275 | 
| 274   // Write out the serialization header value for this object. | 276   // Write out the serialization header value for this object. | 
| 275   writer->WriteInlinedObjectHeader(object_id); | 277   writer->WriteInlinedObjectHeader(object_id); | 
| 276 | 278 | 
| 277   // Write out the class and tags information. | 279   // Write out the class and tags information. | 
| 278   writer->WriteVMIsolateObject(Object::kTypeParameterClass); | 280   writer->WriteVMIsolateObject(kTypeParameterCid); | 
| 279   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 281   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 280 | 282 | 
| 281   // Write out all the non object pointer fields. | 283   // Write out all the non object pointer fields. | 
| 282   writer->WriteIntptrValue(ptr()->index_); | 284   writer->WriteIntptrValue(ptr()->index_); | 
| 283   writer->WriteIntptrValue(ptr()->token_pos_); | 285   writer->WriteIntptrValue(ptr()->token_pos_); | 
| 284   writer->Write<int8_t>(ptr()->type_state_); | 286   writer->Write<int8_t>(ptr()->type_state_); | 
| 285 | 287 | 
| 286   // Write out all the object pointer fields. | 288   // Write out all the object pointer fields. | 
| 287   SnapshotWriterVisitor visitor(writer, false); | 289   SnapshotWriterVisitor visitor(writer, false); | 
| 288   visitor.VisitPointers(from(), to()); | 290   visitor.VisitPointers(from(), to()); | 
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 340 | 342 | 
| 341 void RawTypeArguments::WriteTo(SnapshotWriter* writer, | 343 void RawTypeArguments::WriteTo(SnapshotWriter* writer, | 
| 342                                intptr_t object_id, | 344                                intptr_t object_id, | 
| 343                                Snapshot::Kind kind) { | 345                                Snapshot::Kind kind) { | 
| 344   ASSERT(writer != NULL); | 346   ASSERT(writer != NULL); | 
| 345 | 347 | 
| 346   // Write out the serialization header value for this object. | 348   // Write out the serialization header value for this object. | 
| 347   writer->WriteInlinedObjectHeader(object_id); | 349   writer->WriteInlinedObjectHeader(object_id); | 
| 348 | 350 | 
| 349   // Write out the class and tags information. | 351   // Write out the class and tags information. | 
| 350   writer->WriteVMIsolateObject(Object::kTypeArgumentsClass); | 352   writer->WriteVMIsolateObject(kTypeArgumentsCid); | 
| 351   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 353   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 352 | 354 | 
| 353   // Write out the length field. | 355   // Write out the length field. | 
| 354   writer->Write<RawObject*>(ptr()->length_); | 356   writer->Write<RawObject*>(ptr()->length_); | 
| 355 | 357 | 
| 356   // Write out the individual types. | 358   // Write out the individual types. | 
| 357   intptr_t len = Smi::Value(ptr()->length_); | 359   intptr_t len = Smi::Value(ptr()->length_); | 
| 358   for (intptr_t i = 0; i < len; i++) { | 360   for (intptr_t i = 0; i < len; i++) { | 
| 359     writer->WriteObjectImpl(ptr()->types_[i]); | 361     writer->WriteObjectImpl(ptr()->types_[i]); | 
| 360   } | 362   } | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 393 void RawInstantiatedTypeArguments::WriteTo(SnapshotWriter* writer, | 395 void RawInstantiatedTypeArguments::WriteTo(SnapshotWriter* writer, | 
| 394                                            intptr_t object_id, | 396                                            intptr_t object_id, | 
| 395                                            Snapshot::Kind kind) { | 397                                            Snapshot::Kind kind) { | 
| 396   ASSERT(writer != NULL); | 398   ASSERT(writer != NULL); | 
| 397   ASSERT(kind == Snapshot::kMessage); | 399   ASSERT(kind == Snapshot::kMessage); | 
| 398 | 400 | 
| 399   // Write out the serialization header value for this object. | 401   // Write out the serialization header value for this object. | 
| 400   writer->WriteInlinedObjectHeader(object_id); | 402   writer->WriteInlinedObjectHeader(object_id); | 
| 401 | 403 | 
| 402   // Write out the class and tags information. | 404   // Write out the class and tags information. | 
| 403   writer->WriteVMIsolateObject(Object::kInstantiatedTypeArgumentsClass); | 405   writer->WriteVMIsolateObject(kInstantiatedTypeArgumentsCid); | 
| 404   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 406   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 405 | 407 | 
| 406   // Write out all the object pointer fields. | 408   // Write out all the object pointer fields. | 
| 407   SnapshotWriterVisitor visitor(writer, false); | 409   SnapshotWriterVisitor visitor(writer, false); | 
| 408   visitor.VisitPointers(from(), to()); | 410   visitor.VisitPointers(from(), to()); | 
| 409 } | 411 } | 
| 410 | 412 | 
| 411 | 413 | 
| 412 RawFunction* Function::ReadFrom(SnapshotReader* reader, | 414 RawFunction* Function::ReadFrom(SnapshotReader* reader, | 
| 413                                 intptr_t object_id, | 415                                 intptr_t object_id, | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 454                           intptr_t object_id, | 456                           intptr_t object_id, | 
| 455                           Snapshot::Kind kind) { | 457                           Snapshot::Kind kind) { | 
| 456   ASSERT(writer != NULL); | 458   ASSERT(writer != NULL); | 
| 457   ASSERT(kind != Snapshot::kMessage && | 459   ASSERT(kind != Snapshot::kMessage && | 
| 458          !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); | 460          !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); | 
| 459 | 461 | 
| 460   // Write out the serialization header value for this object. | 462   // Write out the serialization header value for this object. | 
| 461   writer->WriteInlinedObjectHeader(object_id); | 463   writer->WriteInlinedObjectHeader(object_id); | 
| 462 | 464 | 
| 463   // Write out the class and tags information. | 465   // Write out the class and tags information. | 
| 464   writer->WriteVMIsolateObject(Object::kFunctionClass); | 466   writer->WriteVMIsolateObject(kFunctionCid); | 
| 465   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 467   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 466 | 468 | 
| 467   // Write out all the non object fields. | 469   // Write out all the non object fields. | 
| 468   writer->WriteIntptrValue(ptr()->token_pos_); | 470   writer->WriteIntptrValue(ptr()->token_pos_); | 
| 469   writer->WriteIntptrValue(ptr()->end_token_pos_); | 471   writer->WriteIntptrValue(ptr()->end_token_pos_); | 
| 470   writer->WriteIntptrValue(ptr()->num_fixed_parameters_); | 472   writer->WriteIntptrValue(ptr()->num_fixed_parameters_); | 
| 471   writer->WriteIntptrValue(ptr()->num_optional_parameters_); | 473   writer->WriteIntptrValue(ptr()->num_optional_parameters_); | 
| 472   writer->WriteIntptrValue(ptr()->usage_counter_); | 474   writer->WriteIntptrValue(ptr()->usage_counter_); | 
| 473   writer->WriteIntptrValue(ptr()->deoptimization_counter_); | 475   writer->WriteIntptrValue(ptr()->deoptimization_counter_); | 
| 474   writer->WriteIntptrValue(GetKind()); | 476   writer->WriteIntptrValue(GetKind()); | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 521                        intptr_t object_id, | 523                        intptr_t object_id, | 
| 522                        Snapshot::Kind kind) { | 524                        Snapshot::Kind kind) { | 
| 523   ASSERT(writer != NULL); | 525   ASSERT(writer != NULL); | 
| 524   ASSERT(kind != Snapshot::kMessage && | 526   ASSERT(kind != Snapshot::kMessage && | 
| 525          !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); | 527          !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); | 
| 526 | 528 | 
| 527   // Write out the serialization header value for this object. | 529   // Write out the serialization header value for this object. | 
| 528   writer->WriteInlinedObjectHeader(object_id); | 530   writer->WriteInlinedObjectHeader(object_id); | 
| 529 | 531 | 
| 530   // Write out the class and tags information. | 532   // Write out the class and tags information. | 
| 531   writer->WriteVMIsolateObject(Object::kFieldClass); | 533   writer->WriteVMIsolateObject(kFieldCid); | 
| 532   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 534   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 533 | 535 | 
| 534   // Write out all the non object fields. | 536   // Write out all the non object fields. | 
| 535   writer->WriteIntptrValue(ptr()->token_pos_); | 537   writer->WriteIntptrValue(ptr()->token_pos_); | 
| 536   writer->Write<bool>(ptr()->is_static_); | 538   writer->Write<bool>(ptr()->is_static_); | 
| 537   writer->Write<bool>(ptr()->is_final_); | 539   writer->Write<bool>(ptr()->is_final_); | 
| 538   writer->Write<bool>(ptr()->is_const_); | 540   writer->Write<bool>(ptr()->is_const_); | 
| 539   writer->Write<bool>(ptr()->has_initializer_); | 541   writer->Write<bool>(ptr()->has_initializer_); | 
| 540 | 542 | 
| 541   // Write out all the object pointer fields. | 543   // Write out all the object pointer fields. | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 574 void RawLiteralToken::WriteTo(SnapshotWriter* writer, | 576 void RawLiteralToken::WriteTo(SnapshotWriter* writer, | 
| 575                               intptr_t object_id, | 577                               intptr_t object_id, | 
| 576                               Snapshot::Kind kind) { | 578                               Snapshot::Kind kind) { | 
| 577   ASSERT(writer != NULL); | 579   ASSERT(writer != NULL); | 
| 578   ASSERT(kind != Snapshot::kMessage); | 580   ASSERT(kind != Snapshot::kMessage); | 
| 579 | 581 | 
| 580   // Write out the serialization header value for this object. | 582   // Write out the serialization header value for this object. | 
| 581   writer->WriteInlinedObjectHeader(object_id); | 583   writer->WriteInlinedObjectHeader(object_id); | 
| 582 | 584 | 
| 583   // Write out the class and tags information. | 585   // Write out the class and tags information. | 
| 584   writer->WriteVMIsolateObject(Object::kLiteralTokenClass); | 586   writer->WriteVMIsolateObject(kLiteralTokenCid); | 
| 585   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 587   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 586 | 588 | 
| 587   // Write out the kind field. | 589   // Write out the kind field. | 
| 588   writer->Write<intptr_t>(ptr()->kind_); | 590   writer->Write<intptr_t>(ptr()->kind_); | 
| 589 | 591 | 
| 590   // Write out literal and value fields. | 592   // Write out literal and value fields. | 
| 591   writer->WriteObjectImpl(ptr()->literal_); | 593   writer->WriteObjectImpl(ptr()->literal_); | 
| 592   writer->WriteObjectImpl(ptr()->value_); | 594   writer->WriteObjectImpl(ptr()->value_); | 
| 593 } | 595 } | 
| 594 | 596 | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 630                              intptr_t object_id, | 632                              intptr_t object_id, | 
| 631                              Snapshot::Kind kind) { | 633                              Snapshot::Kind kind) { | 
| 632   ASSERT(writer != NULL); | 634   ASSERT(writer != NULL); | 
| 633   ASSERT(kind != Snapshot::kMessage && | 635   ASSERT(kind != Snapshot::kMessage && | 
| 634          !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); | 636          !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); | 
| 635 | 637 | 
| 636   // Write out the serialization header value for this object. | 638   // Write out the serialization header value for this object. | 
| 637   writer->WriteInlinedObjectHeader(object_id); | 639   writer->WriteInlinedObjectHeader(object_id); | 
| 638 | 640 | 
| 639   // Write out the class and tags information. | 641   // Write out the class and tags information. | 
| 640   writer->WriteVMIsolateObject(Object::kTokenStreamClass); | 642   writer->WriteVMIsolateObject(kTokenStreamCid); | 
| 641   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 643   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 642 | 644 | 
| 643   // Write out the length field and the token stream. | 645   // Write out the length field and the token stream. | 
| 644   intptr_t len = Smi::Value(ptr()->length_); | 646   intptr_t len = Smi::Value(ptr()->length_); | 
| 645   writer->Write<RawObject*>(ptr()->length_); | 647   writer->Write<RawObject*>(ptr()->length_); | 
| 646   writer->WriteBytes(reinterpret_cast<uint8_t*>(ptr()->data_), len); | 648   writer->WriteBytes(reinterpret_cast<uint8_t*>(ptr()->data_), len); | 
| 647 | 649 | 
| 648   // Write out the literal/identifier token array. | 650   // Write out the literal/identifier token array. | 
| 649   writer->WriteObjectImpl(ptr()->token_objects_); | 651   writer->WriteObjectImpl(ptr()->token_objects_); | 
| 650 } | 652 } | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 684                         Snapshot::Kind kind) { | 686                         Snapshot::Kind kind) { | 
| 685   ASSERT(writer != NULL); | 687   ASSERT(writer != NULL); | 
| 686   ASSERT(tokens_ != TokenStream::null()); | 688   ASSERT(tokens_ != TokenStream::null()); | 
| 687   ASSERT(kind != Snapshot::kMessage && | 689   ASSERT(kind != Snapshot::kMessage && | 
| 688          !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); | 690          !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); | 
| 689 | 691 | 
| 690   // Write out the serialization header value for this object. | 692   // Write out the serialization header value for this object. | 
| 691   writer->WriteInlinedObjectHeader(object_id); | 693   writer->WriteInlinedObjectHeader(object_id); | 
| 692 | 694 | 
| 693   // Write out the class and tags information. | 695   // Write out the class and tags information. | 
| 694   writer->WriteVMIsolateObject(Object::kScriptClass); | 696   writer->WriteVMIsolateObject(kScriptCid); | 
| 695   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 697   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 696 | 698 | 
| 697   // Write out all the object pointer fields. | 699   // Write out all the object pointer fields. | 
| 698   writer->WriteObjectImpl(ptr()->url_); | 700   writer->WriteObjectImpl(ptr()->url_); | 
| 699   writer->WriteObjectImpl(ptr()->tokens_); | 701   writer->WriteObjectImpl(ptr()->tokens_); | 
| 700 } | 702 } | 
| 701 | 703 | 
| 702 | 704 | 
| 703 RawLibrary* Library::ReadFrom(SnapshotReader* reader, | 705 RawLibrary* Library::ReadFrom(SnapshotReader* reader, | 
| 704                               intptr_t object_id, | 706                               intptr_t object_id, | 
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 756 void RawLibrary::WriteTo(SnapshotWriter* writer, | 758 void RawLibrary::WriteTo(SnapshotWriter* writer, | 
| 757                          intptr_t object_id, | 759                          intptr_t object_id, | 
| 758                          Snapshot::Kind kind) { | 760                          Snapshot::Kind kind) { | 
| 759   ASSERT(writer != NULL); | 761   ASSERT(writer != NULL); | 
| 760   ASSERT(kind != Snapshot::kMessage); | 762   ASSERT(kind != Snapshot::kMessage); | 
| 761 | 763 | 
| 762   // Write out the serialization header value for this object. | 764   // Write out the serialization header value for this object. | 
| 763   writer->WriteInlinedObjectHeader(object_id); | 765   writer->WriteInlinedObjectHeader(object_id); | 
| 764 | 766 | 
| 765   // Write out the class and tags information. | 767   // Write out the class and tags information. | 
| 766   writer->WriteVMIsolateObject(Object::kLibraryClass); | 768   writer->WriteVMIsolateObject(kLibraryCid); | 
| 767   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 769   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 768 | 770 | 
| 769   if (RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))) { | 771   if (RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))) { | 
| 770     ASSERT(kind != Snapshot::kFull); | 772     ASSERT(kind != Snapshot::kFull); | 
| 771     // Write out library URL so that it can be looked up when reading. | 773     // Write out library URL so that it can be looked up when reading. | 
| 772     writer->WriteObjectImpl(ptr()->url_); | 774     writer->WriteObjectImpl(ptr()->url_); | 
| 773   } else { | 775   } else { | 
| 774     // Write out all non object fields. | 776     // Write out all non object fields. | 
| 775     writer->WriteIntptrValue(ptr()->index_); | 777     writer->WriteIntptrValue(ptr()->index_); | 
| 776     writer->WriteIntptrValue(ptr()->num_imports_); | 778     writer->WriteIntptrValue(ptr()->num_imports_); | 
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 827                                intptr_t object_id, | 829                                intptr_t object_id, | 
| 828                                Snapshot::Kind kind) { | 830                                Snapshot::Kind kind) { | 
| 829   ASSERT(writer != NULL); | 831   ASSERT(writer != NULL); | 
| 830   ASSERT(kind != Snapshot::kMessage && | 832   ASSERT(kind != Snapshot::kMessage && | 
| 831          !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); | 833          !RawObject::IsCreatedFromSnapshot(writer->GetObjectTags(this))); | 
| 832 | 834 | 
| 833   // Write out the serialization header value for this object. | 835   // Write out the serialization header value for this object. | 
| 834   writer->WriteInlinedObjectHeader(object_id); | 836   writer->WriteInlinedObjectHeader(object_id); | 
| 835 | 837 | 
| 836   // Write out the class and tags information. | 838   // Write out the class and tags information. | 
| 837   writer->WriteVMIsolateObject(Object::kLibraryPrefixClass); | 839   writer->WriteVMIsolateObject(kLibraryPrefixCid); | 
| 838   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 840   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 839 | 841 | 
| 840   // Write out all non object fields. | 842   // Write out all non object fields. | 
| 841   writer->WriteIntptrValue(ptr()->num_libs_); | 843   writer->WriteIntptrValue(ptr()->num_libs_); | 
| 842 | 844 | 
| 843   // Write out all the object pointer fields. | 845   // Write out all the object pointer fields. | 
| 844   SnapshotWriterVisitor visitor(writer); | 846   SnapshotWriterVisitor visitor(writer); | 
| 845   visitor.VisitPointers(from(), to()); | 847   visitor.VisitPointers(from(), to()); | 
| 846 } | 848 } | 
| 847 | 849 | 
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 996 | 998 | 
| 997 void RawContext::WriteTo(SnapshotWriter* writer, | 999 void RawContext::WriteTo(SnapshotWriter* writer, | 
| 998                          intptr_t object_id, | 1000                          intptr_t object_id, | 
| 999                          Snapshot::Kind kind) { | 1001                          Snapshot::Kind kind) { | 
| 1000   ASSERT(writer != NULL); | 1002   ASSERT(writer != NULL); | 
| 1001 | 1003 | 
| 1002   // Write out the serialization header value for this object. | 1004   // Write out the serialization header value for this object. | 
| 1003   writer->WriteInlinedObjectHeader(object_id); | 1005   writer->WriteInlinedObjectHeader(object_id); | 
| 1004 | 1006 | 
| 1005   // Write out the class and tags information. | 1007   // Write out the class and tags information. | 
| 1006   writer->WriteVMIsolateObject(Object::kContextClass); | 1008   writer->WriteVMIsolateObject(kContextCid); | 
| 1007   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 1009   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 1008 | 1010 | 
| 1009   // Write out num of variables in the context. | 1011   // Write out num of variables in the context. | 
| 1010   writer->WriteIntptrValue(ptr()->num_variables_); | 1012   writer->WriteIntptrValue(ptr()->num_variables_); | 
| 1011 | 1013 | 
| 1012   // Can't serialize the isolate pointer, we set it implicitly on read. | 1014   // Can't serialize the isolate pointer, we set it implicitly on read. | 
| 1013 | 1015 | 
| 1014   // Write out all the object pointer fields. | 1016   // Write out all the object pointer fields. | 
| 1015   SnapshotWriterVisitor visitor(writer); | 1017   SnapshotWriterVisitor visitor(writer); | 
| 1016   visitor.VisitPointers(from(), to(ptr()->num_variables_)); | 1018   visitor.VisitPointers(from(), to(ptr()->num_variables_)); | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1048 void RawContextScope::WriteTo(SnapshotWriter* writer, | 1050 void RawContextScope::WriteTo(SnapshotWriter* writer, | 
| 1049                               intptr_t object_id, | 1051                               intptr_t object_id, | 
| 1050                               Snapshot::Kind kind) { | 1052                               Snapshot::Kind kind) { | 
| 1051   ASSERT(writer != NULL); | 1053   ASSERT(writer != NULL); | 
| 1052   ASSERT(kind == Snapshot::kMessage); | 1054   ASSERT(kind == Snapshot::kMessage); | 
| 1053 | 1055 | 
| 1054   // Write out the serialization header value for this object. | 1056   // Write out the serialization header value for this object. | 
| 1055   writer->WriteInlinedObjectHeader(object_id); | 1057   writer->WriteInlinedObjectHeader(object_id); | 
| 1056 | 1058 | 
| 1057   // Write out the class and tags information. | 1059   // Write out the class and tags information. | 
| 1058   writer->WriteVMIsolateObject(Object::kContextScopeClass); | 1060   writer->WriteVMIsolateObject(kContextScopeCid); | 
| 1059   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 1061   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 1060 | 1062 | 
| 1061   // Serialize number of variables. | 1063   // Serialize number of variables. | 
| 1062   writer->WriteIntptrValue(ptr()->num_variables_); | 1064   writer->WriteIntptrValue(ptr()->num_variables_); | 
| 1063 | 1065 | 
| 1064   // Write out all the object pointer fields. | 1066   // Write out all the object pointer fields. | 
| 1065   SnapshotWriterVisitor visitor(writer); | 1067   SnapshotWriterVisitor visitor(writer); | 
| 1066   visitor.VisitPointers(from(), to(ptr()->num_variables_)); | 1068   visitor.VisitPointers(from(), to(ptr()->num_variables_)); | 
| 1067 } | 1069 } | 
| 1068 | 1070 | 
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1226 | 1228 | 
| 1227 void RawMint::WriteTo(SnapshotWriter* writer, | 1229 void RawMint::WriteTo(SnapshotWriter* writer, | 
| 1228                       intptr_t object_id, | 1230                       intptr_t object_id, | 
| 1229                       Snapshot::Kind kind) { | 1231                       Snapshot::Kind kind) { | 
| 1230   ASSERT(writer != NULL); | 1232   ASSERT(writer != NULL); | 
| 1231 | 1233 | 
| 1232   // Write out the serialization header value for this object. | 1234   // Write out the serialization header value for this object. | 
| 1233   writer->WriteInlinedObjectHeader(object_id); | 1235   writer->WriteInlinedObjectHeader(object_id); | 
| 1234 | 1236 | 
| 1235   // Write out the class and tags information. | 1237   // Write out the class and tags information. | 
| 1236   writer->WriteIndexedObject(ObjectStore::kMintClass); | 1238   writer->WriteIndexedObject(kMintCid); | 
| 1237   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 1239   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 1238 | 1240 | 
| 1239   // Write out the 64 bit value. | 1241   // Write out the 64 bit value. | 
| 1240   writer->Write<int64_t>(ptr()->value_); | 1242   writer->Write<int64_t>(ptr()->value_); | 
| 1241 } | 1243 } | 
| 1242 | 1244 | 
| 1243 | 1245 | 
| 1244 RawBigint* Bigint::ReadFrom(SnapshotReader* reader, | 1246 RawBigint* Bigint::ReadFrom(SnapshotReader* reader, | 
| 1245                             intptr_t object_id, | 1247                             intptr_t object_id, | 
| 1246                             intptr_t tags, | 1248                             intptr_t tags, | 
| (...skipping 27 matching lines...) Expand all  Loading... | 
| 1274 | 1276 | 
| 1275 void RawBigint::WriteTo(SnapshotWriter* writer, | 1277 void RawBigint::WriteTo(SnapshotWriter* writer, | 
| 1276                         intptr_t object_id, | 1278                         intptr_t object_id, | 
| 1277                         Snapshot::Kind kind) { | 1279                         Snapshot::Kind kind) { | 
| 1278   ASSERT(writer != NULL); | 1280   ASSERT(writer != NULL); | 
| 1279 | 1281 | 
| 1280   // Write out the serialization header value for this object. | 1282   // Write out the serialization header value for this object. | 
| 1281   writer->WriteInlinedObjectHeader(object_id); | 1283   writer->WriteInlinedObjectHeader(object_id); | 
| 1282 | 1284 | 
| 1283   // Write out the class and tags information. | 1285   // Write out the class and tags information. | 
| 1284   writer->WriteIndexedObject(ObjectStore::kBigintClass); | 1286   writer->WriteIndexedObject(kBigintCid); | 
| 1285   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 1287   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 1286 | 1288 | 
| 1287   // Write out the bigint value as a HEXCstring. | 1289   // Write out the bigint value as a HEXCstring. | 
| 1288   intptr_t length = ptr()->signed_length_; | 1290   intptr_t length = ptr()->signed_length_; | 
| 1289   bool is_negative = false; | 1291   bool is_negative = false; | 
| 1290   if (length <= 0) { | 1292   if (length <= 0) { | 
| 1291     length = -length; | 1293     length = -length; | 
| 1292     is_negative = true; | 1294     is_negative = true; | 
| 1293   } | 1295   } | 
| 1294   uword data_start = reinterpret_cast<uword>(ptr()) + sizeof(RawBigint); | 1296   uword data_start = reinterpret_cast<uword>(ptr()) + sizeof(RawBigint); | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1344 | 1346 | 
| 1345 void RawDouble::WriteTo(SnapshotWriter* writer, | 1347 void RawDouble::WriteTo(SnapshotWriter* writer, | 
| 1346                         intptr_t object_id, | 1348                         intptr_t object_id, | 
| 1347                         Snapshot::Kind kind) { | 1349                         Snapshot::Kind kind) { | 
| 1348   ASSERT(writer != NULL); | 1350   ASSERT(writer != NULL); | 
| 1349 | 1351 | 
| 1350   // Write out the serialization header value for this object. | 1352   // Write out the serialization header value for this object. | 
| 1351   writer->WriteInlinedObjectHeader(object_id); | 1353   writer->WriteInlinedObjectHeader(object_id); | 
| 1352 | 1354 | 
| 1353   // Write out the class and tags information. | 1355   // Write out the class and tags information. | 
| 1354   writer->WriteIndexedObject(ObjectStore::kDoubleClass); | 1356   writer->WriteIndexedObject(kDoubleCid); | 
| 1355   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 1357   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 1356 | 1358 | 
| 1357   // Write out the double value. | 1359   // Write out the double value. | 
| 1358   writer->Write<double>(ptr()->value_); | 1360   writer->Write<double>(ptr()->value_); | 
| 1359 } | 1361 } | 
| 1360 | 1362 | 
| 1361 | 1363 | 
| 1362 RawString* String::ReadFrom(SnapshotReader* reader, | 1364 RawString* String::ReadFrom(SnapshotReader* reader, | 
| 1363                             intptr_t object_id, | 1365                             intptr_t object_id, | 
| 1364                             intptr_t tags, | 1366                             intptr_t tags, | 
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1514   writer->WriteIntptrValue(tags); | 1516   writer->WriteIntptrValue(tags); | 
| 1515 | 1517 | 
| 1516   // Write out the length field. | 1518   // Write out the length field. | 
| 1517   writer->Write<RawObject*>(length); | 1519   writer->Write<RawObject*>(length); | 
| 1518 | 1520 | 
| 1519   // Write out the hash field. | 1521   // Write out the hash field. | 
| 1520   writer->Write<RawObject*>(hash); | 1522   writer->Write<RawObject*>(hash); | 
| 1521 | 1523 | 
| 1522   // Write out the string. | 1524   // Write out the string. | 
| 1523   if (len > 0) { | 1525   if (len > 0) { | 
| 1524     if (class_id == ObjectStore::kOneByteStringClass) { | 1526     if (class_id == kOneByteStringCid) { | 
| 1525       writer->WriteBytes(reinterpret_cast<const uint8_t*>(data), len); | 1527       writer->WriteBytes(reinterpret_cast<const uint8_t*>(data), len); | 
| 1526     } else { | 1528     } else { | 
| 1527       for (intptr_t i = 0; i < len; i++) { | 1529       for (intptr_t i = 0; i < len; i++) { | 
| 1528         writer->Write(data[i]); | 1530         writer->Write(data[i]); | 
| 1529       } | 1531       } | 
| 1530     } | 1532     } | 
| 1531   } | 1533   } | 
| 1532 } | 1534 } | 
| 1533 | 1535 | 
| 1534 | 1536 | 
| 1535 void RawOneByteString::WriteTo(SnapshotWriter* writer, | 1537 void RawOneByteString::WriteTo(SnapshotWriter* writer, | 
| 1536                                intptr_t object_id, | 1538                                intptr_t object_id, | 
| 1537                                Snapshot::Kind kind) { | 1539                                Snapshot::Kind kind) { | 
| 1538   StringWriteTo(writer, | 1540   StringWriteTo(writer, | 
| 1539                 object_id, | 1541                 object_id, | 
| 1540                 kind, | 1542                 kind, | 
| 1541                 ObjectStore::kOneByteStringClass, | 1543                 kOneByteStringCid, | 
| 1542                 writer->GetObjectTags(this), | 1544                 writer->GetObjectTags(this), | 
| 1543                 ptr()->length_, | 1545                 ptr()->length_, | 
| 1544                 ptr()->hash_, | 1546                 ptr()->hash_, | 
| 1545                 ptr()->data_); | 1547                 ptr()->data_); | 
| 1546 } | 1548 } | 
| 1547 | 1549 | 
| 1548 | 1550 | 
| 1549 void RawTwoByteString::WriteTo(SnapshotWriter* writer, | 1551 void RawTwoByteString::WriteTo(SnapshotWriter* writer, | 
| 1550                                intptr_t object_id, | 1552                                intptr_t object_id, | 
| 1551                                Snapshot::Kind kind) { | 1553                                Snapshot::Kind kind) { | 
| 1552   StringWriteTo(writer, | 1554   StringWriteTo(writer, | 
| 1553                 object_id, | 1555                 object_id, | 
| 1554                 kind, | 1556                 kind, | 
| 1555                 ObjectStore::kTwoByteStringClass, | 1557                 kTwoByteStringCid, | 
| 1556                 writer->GetObjectTags(this), | 1558                 writer->GetObjectTags(this), | 
| 1557                 ptr()->length_, | 1559                 ptr()->length_, | 
| 1558                 ptr()->hash_, | 1560                 ptr()->hash_, | 
| 1559                 ptr()->data_); | 1561                 ptr()->data_); | 
| 1560 } | 1562 } | 
| 1561 | 1563 | 
| 1562 | 1564 | 
| 1563 void RawFourByteString::WriteTo(SnapshotWriter* writer, | 1565 void RawFourByteString::WriteTo(SnapshotWriter* writer, | 
| 1564                                 intptr_t object_id, | 1566                                 intptr_t object_id, | 
| 1565                                 Snapshot::Kind kind) { | 1567                                 Snapshot::Kind kind) { | 
| 1566   StringWriteTo(writer, | 1568   StringWriteTo(writer, | 
| 1567                 object_id, | 1569                 object_id, | 
| 1568                 kind, | 1570                 kind, | 
| 1569                 ObjectStore::kFourByteStringClass, | 1571                 kFourByteStringCid, | 
| 1570                 writer->GetObjectTags(this), | 1572                 writer->GetObjectTags(this), | 
| 1571                 ptr()->length_, | 1573                 ptr()->length_, | 
| 1572                 ptr()->hash_, | 1574                 ptr()->hash_, | 
| 1573                 ptr()->data_); | 1575                 ptr()->data_); | 
| 1574 } | 1576 } | 
| 1575 | 1577 | 
| 1576 | 1578 | 
| 1577 RawExternalOneByteString* ExternalOneByteString::ReadFrom( | 1579 RawExternalOneByteString* ExternalOneByteString::ReadFrom( | 
| 1578     SnapshotReader* reader, | 1580     SnapshotReader* reader, | 
| 1579     intptr_t object_id, | 1581     intptr_t object_id, | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
| 1604 } | 1606 } | 
| 1605 | 1607 | 
| 1606 | 1608 | 
| 1607 void RawExternalOneByteString::WriteTo(SnapshotWriter* writer, | 1609 void RawExternalOneByteString::WriteTo(SnapshotWriter* writer, | 
| 1608                                        intptr_t object_id, | 1610                                        intptr_t object_id, | 
| 1609                                        Snapshot::Kind kind) { | 1611                                        Snapshot::Kind kind) { | 
| 1610   // Serialize as a non-external one byte string. | 1612   // Serialize as a non-external one byte string. | 
| 1611   StringWriteTo(writer, | 1613   StringWriteTo(writer, | 
| 1612                 object_id, | 1614                 object_id, | 
| 1613                 kind, | 1615                 kind, | 
| 1614                 ObjectStore::kOneByteStringClass, | 1616                 kOneByteStringCid, | 
| 1615                 writer->GetObjectTags(this), | 1617                 writer->GetObjectTags(this), | 
| 1616                 ptr()->length_, | 1618                 ptr()->length_, | 
| 1617                 ptr()->hash_, | 1619                 ptr()->hash_, | 
| 1618                 ptr()->external_data_->data()); | 1620                 ptr()->external_data_->data()); | 
| 1619 } | 1621 } | 
| 1620 | 1622 | 
| 1621 | 1623 | 
| 1622 void RawExternalTwoByteString::WriteTo(SnapshotWriter* writer, | 1624 void RawExternalTwoByteString::WriteTo(SnapshotWriter* writer, | 
| 1623                                        intptr_t object_id, | 1625                                        intptr_t object_id, | 
| 1624                                        Snapshot::Kind kind) { | 1626                                        Snapshot::Kind kind) { | 
| 1625   // Serialize as a non-external two byte string. | 1627   // Serialize as a non-external two byte string. | 
| 1626   StringWriteTo(writer, | 1628   StringWriteTo(writer, | 
| 1627                 object_id, | 1629                 object_id, | 
| 1628                 kind, | 1630                 kind, | 
| 1629                 ObjectStore::kTwoByteStringClass, | 1631                 kTwoByteStringCid, | 
| 1630                 writer->GetObjectTags(this), | 1632                 writer->GetObjectTags(this), | 
| 1631                 ptr()->length_, | 1633                 ptr()->length_, | 
| 1632                 ptr()->hash_, | 1634                 ptr()->hash_, | 
| 1633                 ptr()->external_data_->data()); | 1635                 ptr()->external_data_->data()); | 
| 1634 } | 1636 } | 
| 1635 | 1637 | 
| 1636 | 1638 | 
| 1637 void RawExternalFourByteString::WriteTo(SnapshotWriter* writer, | 1639 void RawExternalFourByteString::WriteTo(SnapshotWriter* writer, | 
| 1638                                         intptr_t object_id, | 1640                                         intptr_t object_id, | 
| 1639                                         Snapshot::Kind kind) { | 1641                                         Snapshot::Kind kind) { | 
| 1640   // Serialize as a non-external four byte string. | 1642   // Serialize as a non-external four byte string. | 
| 1641   StringWriteTo(writer, | 1643   StringWriteTo(writer, | 
| 1642                 object_id, | 1644                 object_id, | 
| 1643                 kind, | 1645                 kind, | 
| 1644                 ObjectStore::kFourByteStringClass, | 1646                 kFourByteStringCid, | 
| 1645                 writer->GetObjectTags(this), | 1647                 writer->GetObjectTags(this), | 
| 1646                 ptr()->length_, | 1648                 ptr()->length_, | 
| 1647                 ptr()->hash_, | 1649                 ptr()->hash_, | 
| 1648                 ptr()->external_data_->data()); | 1650                 ptr()->external_data_->data()); | 
| 1649 } | 1651 } | 
| 1650 | 1652 | 
| 1651 | 1653 | 
| 1652 RawBool* Bool::ReadFrom(SnapshotReader* reader, | 1654 RawBool* Bool::ReadFrom(SnapshotReader* reader, | 
| 1653                         intptr_t object_id, | 1655                         intptr_t object_id, | 
| 1654                         intptr_t tags, | 1656                         intptr_t tags, | 
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1702   } | 1704   } | 
| 1703   reader->ArrayReadFrom(*array, len, tags); | 1705   reader->ArrayReadFrom(*array, len, tags); | 
| 1704   return array->raw(); | 1706   return array->raw(); | 
| 1705 } | 1707 } | 
| 1706 | 1708 | 
| 1707 | 1709 | 
| 1708 void RawArray::WriteTo(SnapshotWriter* writer, | 1710 void RawArray::WriteTo(SnapshotWriter* writer, | 
| 1709                        intptr_t object_id, | 1711                        intptr_t object_id, | 
| 1710                        Snapshot::Kind kind) { | 1712                        Snapshot::Kind kind) { | 
| 1711   writer->ArrayWriteTo(object_id, | 1713   writer->ArrayWriteTo(object_id, | 
| 1712                        ObjectStore::kArrayClass, | 1714                        kArrayCid, | 
| 1713                        writer->GetObjectTags(this), | 1715                        writer->GetObjectTags(this), | 
| 1714                        ptr()->length_, | 1716                        ptr()->length_, | 
| 1715                        ptr()->type_arguments_, | 1717                        ptr()->type_arguments_, | 
| 1716                        ptr()->data()); | 1718                        ptr()->data()); | 
| 1717 } | 1719 } | 
| 1718 | 1720 | 
| 1719 | 1721 | 
| 1720 void RawImmutableArray::WriteTo(SnapshotWriter* writer, | 1722 void RawImmutableArray::WriteTo(SnapshotWriter* writer, | 
| 1721                                 intptr_t object_id, | 1723                                 intptr_t object_id, | 
| 1722                                 Snapshot::Kind kind) { | 1724                                 Snapshot::Kind kind) { | 
| 1723   writer->ArrayWriteTo(object_id, | 1725   writer->ArrayWriteTo(object_id, | 
| 1724                        ObjectStore::kImmutableArrayClass, | 1726                        kImmutableArrayCid, | 
| 1725                        writer->GetObjectTags(this), | 1727                        writer->GetObjectTags(this), | 
| 1726                        ptr()->length_, | 1728                        ptr()->length_, | 
| 1727                        ptr()->type_arguments_, | 1729                        ptr()->type_arguments_, | 
| 1728                        ptr()->data()); | 1730                        ptr()->data()); | 
| 1729 } | 1731 } | 
| 1730 | 1732 | 
| 1731 | 1733 | 
| 1732 RawGrowableObjectArray* GrowableObjectArray::ReadFrom(SnapshotReader* reader, | 1734 RawGrowableObjectArray* GrowableObjectArray::ReadFrom(SnapshotReader* reader, | 
| 1733                                                       intptr_t object_id, | 1735                                                       intptr_t object_id, | 
| 1734                                                       intptr_t tags, | 1736                                                       intptr_t tags, | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 1758 | 1760 | 
| 1759 void RawGrowableObjectArray::WriteTo(SnapshotWriter* writer, | 1761 void RawGrowableObjectArray::WriteTo(SnapshotWriter* writer, | 
| 1760                                      intptr_t object_id, | 1762                                      intptr_t object_id, | 
| 1761                                      Snapshot::Kind kind) { | 1763                                      Snapshot::Kind kind) { | 
| 1762   ASSERT(writer != NULL); | 1764   ASSERT(writer != NULL); | 
| 1763 | 1765 | 
| 1764   // Write out the serialization header value for this object. | 1766   // Write out the serialization header value for this object. | 
| 1765   writer->WriteInlinedObjectHeader(object_id); | 1767   writer->WriteInlinedObjectHeader(object_id); | 
| 1766 | 1768 | 
| 1767   // Write out the class and tags information. | 1769   // Write out the class and tags information. | 
| 1768   writer->WriteIndexedObject(ObjectStore::kGrowableObjectArrayClass); | 1770   writer->WriteIndexedObject(kGrowableObjectArrayCid); | 
| 1769   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 1771   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 1770 | 1772 | 
| 1771   // Write out the used length field. | 1773   // Write out the used length field. | 
| 1772   writer->Write<RawObject*>(ptr()->length_); | 1774   writer->Write<RawObject*>(ptr()->length_); | 
| 1773 | 1775 | 
| 1774   // Write out the Array object. | 1776   // Write out the Array object. | 
| 1775   writer->WriteObjectImpl(ptr()->data_); | 1777   writer->WriteObjectImpl(ptr()->data_); | 
| 1776 } | 1778 } | 
| 1777 | 1779 | 
| 1778 | 1780 | 
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1895 } | 1897 } | 
| 1896 | 1898 | 
| 1897 | 1899 | 
| 1898 #define BYTEARRAY_WRITE_TO(name, lname, type)                                  \ | 1900 #define BYTEARRAY_WRITE_TO(name, lname, type)                                  \ | 
| 1899 void Raw##name##Array::WriteTo(SnapshotWriter* writer,                         \ | 1901 void Raw##name##Array::WriteTo(SnapshotWriter* writer,                         \ | 
| 1900                                intptr_t object_id,                             \ | 1902                                intptr_t object_id,                             \ | 
| 1901                                Snapshot::Kind kind) {                          \ | 1903                                Snapshot::Kind kind) {                          \ | 
| 1902   ByteArrayWriteTo(writer,                                                     \ | 1904   ByteArrayWriteTo(writer,                                                     \ | 
| 1903                    object_id,                                                  \ | 1905                    object_id,                                                  \ | 
| 1904                    kind,                                                       \ | 1906                    kind,                                                       \ | 
| 1905                    ObjectStore::k##name##ArrayClass,                           \ | 1907                    k##name##ArrayCid,                                          \ | 
| 1906                    writer->GetObjectTags(this),                                \ | 1908                    writer->GetObjectTags(this),                                \ | 
| 1907                    ptr()->length_,                                             \ | 1909                    ptr()->length_,                                             \ | 
| 1908                    reinterpret_cast<uint8_t*>(ptr()->data_));                  \ | 1910                    reinterpret_cast<uint8_t*>(ptr()->data_));                  \ | 
| 1909 }                                                                              \ | 1911 }                                                                              \ | 
| 1910 | 1912 | 
| 1911 | 1913 | 
| 1912 BYTEARRAY_TYPE_LIST(BYTEARRAY_WRITE_TO) | 1914 BYTEARRAY_TYPE_LIST(BYTEARRAY_WRITE_TO) | 
| 1913 #undef BYTEARRAY_WRITE_TO | 1915 #undef BYTEARRAY_WRITE_TO | 
| 1914 | 1916 | 
| 1915 | 1917 | 
| 1916 #define EXTERNALARRAY_WRITE_TO(name, lname, type)                              \ | 1918 #define EXTERNALARRAY_WRITE_TO(name, lname, type)                              \ | 
| 1917 void RawExternal##name##Array::WriteTo(SnapshotWriter* writer,                 \ | 1919 void RawExternal##name##Array::WriteTo(SnapshotWriter* writer,                 \ | 
| 1918                                        intptr_t object_id,                     \ | 1920                                        intptr_t object_id,                     \ | 
| 1919                                        Snapshot::Kind kind) {                  \ | 1921                                        Snapshot::Kind kind) {                  \ | 
| 1920   ByteArrayWriteTo(writer,                                                     \ | 1922   ByteArrayWriteTo(writer,                                                     \ | 
| 1921                    object_id,                                                  \ | 1923                    object_id,                                                  \ | 
| 1922                    kind,                                                       \ | 1924                    kind,                                                       \ | 
| 1923                    ObjectStore::k##name##ArrayClass,                           \ | 1925                    k##name##ArrayCid,                                          \ | 
| 1924                    writer->GetObjectTags(this),                                \ | 1926                    writer->GetObjectTags(this),                                \ | 
| 1925                    ptr()->length_,                                             \ | 1927                    ptr()->length_,                                             \ | 
| 1926                    reinterpret_cast<uint8_t*>(ptr()->external_data_->data())); \ | 1928                    reinterpret_cast<uint8_t*>(ptr()->external_data_->data())); \ | 
| 1927 }                                                                              \ | 1929 }                                                                              \ | 
| 1928 | 1930 | 
| 1929 | 1931 | 
| 1930 BYTEARRAY_TYPE_LIST(EXTERNALARRAY_WRITE_TO) | 1932 BYTEARRAY_TYPE_LIST(EXTERNALARRAY_WRITE_TO) | 
| 1931 #undef BYTEARRAY_WRITE_TO | 1933 #undef BYTEARRAY_WRITE_TO | 
| 1932 #undef BYTEARRAY_TYPE_LIST | 1934 #undef BYTEARRAY_TYPE_LIST | 
| 1933 | 1935 | 
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1999 void RawJSRegExp::WriteTo(SnapshotWriter* writer, | 2001 void RawJSRegExp::WriteTo(SnapshotWriter* writer, | 
| 2000                           intptr_t object_id, | 2002                           intptr_t object_id, | 
| 2001                           Snapshot::Kind kind) { | 2003                           Snapshot::Kind kind) { | 
| 2002   ASSERT(writer != NULL); | 2004   ASSERT(writer != NULL); | 
| 2003   ASSERT(kind == Snapshot::kMessage); | 2005   ASSERT(kind == Snapshot::kMessage); | 
| 2004 | 2006 | 
| 2005   // Write out the serialization header value for this object. | 2007   // Write out the serialization header value for this object. | 
| 2006   writer->WriteInlinedObjectHeader(object_id); | 2008   writer->WriteInlinedObjectHeader(object_id); | 
| 2007 | 2009 | 
| 2008   // Write out the class and tags information. | 2010   // Write out the class and tags information. | 
| 2009   writer->WriteIndexedObject(ObjectStore::kJSRegExpClass); | 2011   writer->WriteIndexedObject(kJSRegExpCid); | 
| 2010   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 2012   writer->WriteIntptrValue(writer->GetObjectTags(this)); | 
| 2011 | 2013 | 
| 2012   // Write out the data length field. | 2014   // Write out the data length field. | 
| 2013   writer->Write<RawObject*>(ptr()->data_length_); | 2015   writer->Write<RawObject*>(ptr()->data_length_); | 
| 2014 | 2016 | 
| 2015   // Write out all the other fields. | 2017   // Write out all the other fields. | 
| 2016   writer->Write<RawObject*>(ptr()->num_bracket_expressions_); | 2018   writer->Write<RawObject*>(ptr()->num_bracket_expressions_); | 
| 2017   writer->WriteObjectImpl(ptr()->pattern_); | 2019   writer->WriteObjectImpl(ptr()->pattern_); | 
| 2018   writer->WriteIntptrValue(ptr()->type_); | 2020   writer->WriteIntptrValue(ptr()->type_); | 
| 2019   writer->WriteIntptrValue(ptr()->flags_); | 2021   writer->WriteIntptrValue(ptr()->flags_); | 
| 2020 | 2022 | 
| 2021   // Do not write out the data part which is native. | 2023   // Do not write out the data part which is native. | 
| 2022 } | 2024 } | 
| 2023 | 2025 | 
| 2024 | 2026 | 
| 2025 }  // namespace dart | 2027 }  // namespace dart | 
| OLD | NEW | 
|---|