| Index: runtime/vm/snapshot.h
|
| diff --git a/runtime/vm/snapshot.h b/runtime/vm/snapshot.h
|
| index 7f6436b8b841a71a13821d789f910f08603f75a7..25dab12a4fd17212286ac1b44d88f306439f1f18 100644
|
| --- a/runtime/vm/snapshot.h
|
| +++ b/runtime/vm/snapshot.h
|
| @@ -370,7 +370,7 @@ class InstructionsReader : public ZoneAllocated {
|
| OS::PreferredCodeAlignment()));
|
| }
|
|
|
| - RawInstructions* GetInstructionsAt(int32_t offset, uword expected_tags);
|
| + uword GetInstructionsAt(int32_t offset);
|
| RawObject* GetObjectAt(int32_t offset);
|
|
|
| private:
|
| @@ -483,8 +483,8 @@ class SnapshotReader : public BaseReader {
|
| RawWeakProperty* NewWeakProperty();
|
| RawRegExp* NewRegExp();
|
|
|
| - RawInstructions* GetInstructionsAt(int32_t offset, uword expected_tags) {
|
| - return instructions_reader_->GetInstructionsAt(offset, expected_tags);
|
| + uword GetInstructionsAt(int32_t offset) {
|
| + return instructions_reader_->GetInstructionsAt(offset);
|
| }
|
|
|
| RawObject* GetObjectAt(int32_t offset) {
|
| @@ -862,26 +862,18 @@ class InstructionsWriter : public ZoneAllocated {
|
|
|
| intptr_t binary_size() { return binary_size_; }
|
|
|
| - int32_t GetOffsetFor(RawInstructions* instructions);
|
| + int32_t GetOffsetFor(RawInstructions* instructions, RawCode* code);
|
|
|
| int32_t GetObjectOffsetFor(RawObject* raw_object);
|
|
|
| - void SetInstructionsCode(RawInstructions* insns, RawCode* code) {
|
| - for (intptr_t i = 0; i < instructions_.length(); i++) {
|
| - if (instructions_[i].raw_insns_ == insns) {
|
| - instructions_[i].raw_code_ = code;
|
| - return;
|
| - }
|
| - }
|
| - UNREACHABLE();
|
| - }
|
| -
|
| void WriteAssembly();
|
|
|
| private:
|
| struct InstructionsData {
|
| - explicit InstructionsData(RawInstructions* insns)
|
| - : raw_insns_(insns), raw_code_(NULL) { }
|
| + explicit InstructionsData(RawInstructions* insns,
|
| + RawCode* code,
|
| + intptr_t offset)
|
| + : raw_insns_(insns), raw_code_(code), offset_(offset) { }
|
|
|
| union {
|
| RawInstructions* raw_insns_;
|
| @@ -891,6 +883,7 @@ class InstructionsWriter : public ZoneAllocated {
|
| RawCode* raw_code_;
|
| const Code* code_;
|
| };
|
| + intptr_t offset_;
|
| };
|
|
|
| struct ObjectData {
|
| @@ -970,18 +963,14 @@ class SnapshotWriter : public BaseWriter {
|
|
|
| static intptr_t FirstObjectId();
|
|
|
| - int32_t GetInstructionsId(RawInstructions* instructions) {
|
| - return instructions_writer_->GetOffsetFor(instructions);
|
| + int32_t GetInstructionsId(RawInstructions* instructions, RawCode* code) {
|
| + return instructions_writer_->GetOffsetFor(instructions, code);
|
| }
|
|
|
| int32_t GetObjectId(RawObject* raw) {
|
| return instructions_writer_->GetObjectOffsetFor(raw);
|
| }
|
|
|
| - void SetInstructionsCode(RawInstructions* instructions, RawCode* code) {
|
| - return instructions_writer_->SetInstructionsCode(instructions, code);
|
| - }
|
| -
|
| void WriteFunctionId(RawFunction* func, bool owner_is_class);
|
|
|
| RawFunction* IsSerializableClosure(RawClosure* closure);
|
| @@ -1048,6 +1037,7 @@ class SnapshotWriter : public BaseWriter {
|
| friend class RawArray;
|
| friend class RawClass;
|
| friend class RawClosureData;
|
| + friend class RawCode;
|
| friend class RawContextScope;
|
| friend class RawExceptionHandlers;
|
| friend class RawField;
|
|
|