| 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/native_entry.h" | 5 #include "vm/native_entry.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/stub_code.h" | 9 #include "vm/stub_code.h" |
| 10 #include "vm/symbols.h" | 10 #include "vm/symbols.h" |
| (...skipping 1954 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1965 intptr_t tags, | 1965 intptr_t tags, |
| 1966 Snapshot::Kind kind, | 1966 Snapshot::Kind kind, |
| 1967 bool as_reference) { | 1967 bool as_reference) { |
| 1968 ASSERT((kind == Snapshot::kScript) || (kind == Snapshot::kFull)); | 1968 ASSERT((kind == Snapshot::kScript) || (kind == Snapshot::kFull)); |
| 1969 | 1969 |
| 1970 ICData& result = ICData::ZoneHandle(reader->zone(), NEW_OBJECT(ICData)); | 1970 ICData& result = ICData::ZoneHandle(reader->zone(), NEW_OBJECT(ICData)); |
| 1971 reader->AddBackRef(object_id, &result, kIsDeserialized); | 1971 reader->AddBackRef(object_id, &result, kIsDeserialized); |
| 1972 | 1972 |
| 1973 result.set_deopt_id(reader->Read<int32_t>()); | 1973 result.set_deopt_id(reader->Read<int32_t>()); |
| 1974 result.set_state_bits(reader->Read<uint32_t>()); | 1974 result.set_state_bits(reader->Read<uint32_t>()); |
| 1975 #if defined(TAG_IC_DATA) |
| 1976 result.set_tag(reader->Read<int16_t>()); |
| 1977 #endif |
| 1975 | 1978 |
| 1976 // Set all the object fields. | 1979 // Set all the object fields. |
| 1977 RawObject** toobj = reader->snapshot_code() | 1980 RawObject** toobj = reader->snapshot_code() |
| 1978 ? result.raw()->to_precompiled_snapshot() | 1981 ? result.raw()->to_precompiled_snapshot() |
| 1979 : result.raw()->to(); | 1982 : result.raw()->to(); |
| 1980 READ_OBJECT_FIELDS(result, | 1983 READ_OBJECT_FIELDS(result, |
| 1981 result.raw()->from(), toobj, | 1984 result.raw()->from(), toobj, |
| 1982 kAsReference); | 1985 kAsReference); |
| 1983 if (reader->snapshot_code()) { | 1986 if (reader->snapshot_code()) { |
| 1984 result.set_owner(Function::Handle(reader->zone())); | 1987 result.set_owner(Function::Handle(reader->zone())); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1997 // Write out the serialization header value for this object. | 2000 // Write out the serialization header value for this object. |
| 1998 writer->WriteInlinedObjectHeader(object_id); | 2001 writer->WriteInlinedObjectHeader(object_id); |
| 1999 | 2002 |
| 2000 // Write out the class and tags information. | 2003 // Write out the class and tags information. |
| 2001 writer->WriteVMIsolateObject(kICDataCid); | 2004 writer->WriteVMIsolateObject(kICDataCid); |
| 2002 writer->WriteTags(writer->GetObjectTags(this)); | 2005 writer->WriteTags(writer->GetObjectTags(this)); |
| 2003 | 2006 |
| 2004 // Write out all the non object fields. | 2007 // Write out all the non object fields. |
| 2005 writer->Write<int32_t>(ptr()->deopt_id_); | 2008 writer->Write<int32_t>(ptr()->deopt_id_); |
| 2006 writer->Write<uint32_t>(ptr()->state_bits_); | 2009 writer->Write<uint32_t>(ptr()->state_bits_); |
| 2010 #if defined(TAG_IC_DATA) |
| 2011 writer->Write<int16_t>(ptr()->tag_); |
| 2012 #endif |
| 2007 | 2013 |
| 2008 // Write out all the object pointer fields. | 2014 // Write out all the object pointer fields. |
| 2009 // In precompiled snapshots, omit the owner field. The owner field may | 2015 // In precompiled snapshots, omit the owner field. The owner field may |
| 2010 // refer to a function which was always inlined and no longer needed. | 2016 // refer to a function which was always inlined and no longer needed. |
| 2011 SnapshotWriterVisitor visitor(writer, kAsReference); | 2017 SnapshotWriterVisitor visitor(writer, kAsReference); |
| 2012 RawObject** toobj = writer->snapshot_code() ? to_precompiled_snapshot() | 2018 RawObject** toobj = writer->snapshot_code() ? to_precompiled_snapshot() |
| 2013 : to(); | 2019 : to(); |
| 2014 visitor.VisitPointers(from(), toobj); | 2020 visitor.VisitPointers(from(), toobj); |
| 2015 } | 2021 } |
| 2016 | 2022 |
| (...skipping 1677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3694 // We do not allow objects with native fields in an isolate message. | 3700 // We do not allow objects with native fields in an isolate message. |
| 3695 writer->SetWriteException(Exceptions::kArgument, | 3701 writer->SetWriteException(Exceptions::kArgument, |
| 3696 "Illegal argument in isolate message" | 3702 "Illegal argument in isolate message" |
| 3697 " : (object is a UserTag)"); | 3703 " : (object is a UserTag)"); |
| 3698 } else { | 3704 } else { |
| 3699 UNREACHABLE(); | 3705 UNREACHABLE(); |
| 3700 } | 3706 } |
| 3701 } | 3707 } |
| 3702 | 3708 |
| 3703 } // namespace dart | 3709 } // namespace dart |
| OLD | NEW |