| Index: runtime/vm/raw_object.h
|
| diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
|
| index 27372add7d7a9c2b2fac2bdfd733a6c8c92716c5..2110436b0ceb200a95d667d31bea81e3b66ada38 100644
|
| --- a/runtime/vm/raw_object.h
|
| +++ b/runtime/vm/raw_object.h
|
| @@ -575,7 +575,6 @@ class RawObject {
|
| friend class Mint;
|
| friend class Object;
|
| friend class OneByteString; // StoreSmi
|
| - friend class RawCode;
|
| friend class RawExternalTypedData;
|
| friend class RawInstructions;
|
| friend class RawInstance;
|
| @@ -593,7 +592,6 @@ class RawObject {
|
| friend class TypedDataView;
|
| friend class WeakProperty; // StorePointer
|
| friend class Instance; // StorePointer
|
| - friend class StackFrame; // GetCodeObject assertion.
|
|
|
| DISALLOW_ALLOCATION();
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(RawObject);
|
| @@ -772,7 +770,7 @@ class RawFunction : public RawObject {
|
| RawObject** to_no_code() {
|
| return reinterpret_cast<RawObject**>(&ptr()->ic_data_array_);
|
| }
|
| - RawCode* code_; // Currently active code.
|
| + RawInstructions* instructions_; // Instructions of currently active code.
|
| RawCode* unoptimized_code_; // Unoptimized code, keep it after optimization.
|
| RawObject** to() {
|
| return reinterpret_cast<RawObject**>(&ptr()->unoptimized_code_);
|
| @@ -1002,14 +1000,10 @@ class RawCode : public RawObject {
|
|
|
| RAW_HEAP_OBJECT_IMPLEMENTATION(Code);
|
|
|
| - uword entry_point_;
|
| -
|
| RawObject** from() {
|
| - return reinterpret_cast<RawObject**>(&ptr()->active_instructions_);
|
| + return reinterpret_cast<RawObject**>(&ptr()->instructions_);
|
| }
|
| - RawInstructions* active_instructions_;
|
| RawInstructions* instructions_;
|
| - RawObjectPool* object_pool_;
|
| // If owner_ is Function::null() the owner is a regular stub.
|
| // If owner_ is a Class the owner is the allocation stub for that class.
|
| // Else, owner_ is a regular Dart Function.
|
| @@ -1028,6 +1022,7 @@ class RawCode : public RawObject {
|
| RawObject** to() {
|
| return reinterpret_cast<RawObject**>(&ptr()->return_address_metadata_);
|
| }
|
| + uword entry_point_;
|
|
|
| // Compilation timestamp.
|
| int64_t compile_timestamp_;
|
| @@ -1039,14 +1034,14 @@ class RawCode : public RawObject {
|
| int32_t state_bits_;
|
|
|
| // PC offsets for code patching.
|
| + int32_t entry_patch_pc_offset_;
|
| + int32_t patch_code_pc_offset_;
|
| int32_t lazy_deopt_pc_offset_;
|
|
|
| // Variable length data follows here.
|
| int32_t* data() { OPEN_ARRAY_START(int32_t, int32_t); }
|
| const int32_t* data() const { OPEN_ARRAY_START(int32_t, int32_t); }
|
|
|
| - static bool ContainsPC(RawObject* raw_obj, uword pc);
|
| -
|
| friend class Function;
|
| friend class MarkingVisitor;
|
| friend class SkippedCodeFunctions;
|
| @@ -1079,6 +1074,14 @@ class RawObjectPool : public RawObject {
|
| class RawInstructions : public RawObject {
|
| RAW_HEAP_OBJECT_IMPLEMENTATION(Instructions);
|
|
|
| + RawObject** from() {
|
| + return reinterpret_cast<RawObject**>(&ptr()->code_);
|
| + }
|
| + RawCode* code_;
|
| + RawObjectPool* object_pool_;
|
| + RawObject** to() {
|
| + return reinterpret_cast<RawObject**>(&ptr()->object_pool_);
|
| + }
|
| int32_t size_;
|
|
|
| // Variable length data follows here.
|
| @@ -1087,7 +1090,7 @@ class RawInstructions : public RawObject {
|
| // Private helper function used while visiting stack frames. The
|
| // code which iterates over dart frames is also called during GC and
|
| // is not allowed to create handles.
|
| - static bool ContainsPC(RawInstructions* raw_instr, uword pc);
|
| + static bool ContainsPC(RawObject* raw_obj, uword pc);
|
|
|
| friend class RawCode;
|
| friend class RawFunction;
|
|
|