Index: runtime/vm/raw_object.h |
=================================================================== |
--- runtime/vm/raw_object.h (revision 38030) |
+++ runtime/vm/raw_object.h (working copy) |
@@ -902,18 +902,33 @@ |
class RawPcDescriptors : public RawObject { |
- RAW_HEAP_OBJECT_IMPLEMENTATION(PcDescriptors); |
+ public: |
+ enum Kind { |
+ kDeopt, // Deoptimization continuation point. |
+ kIcCall, // IC call. |
+ kOptStaticCall, // Call directly to known target, e.g. static call. |
+ kUnoptStaticCall, // Call to a known target via a stub. |
+ kClosureCall, // Closure call. |
+ kRuntimeCall, // Runtime call. |
+ kOsrEntry, // OSR entry point in unoptimized code. |
+ kOther |
+ }; |
- intptr_t length_; // Number of descriptors. |
- |
struct PcDescriptorRec { |
uword pc; |
int32_t deopt_id; |
int32_t token_pos; // Or deopt reason. |
int16_t try_index; // Or deopt index. |
- int8_t kind; |
+ int8_t kind_; |
+ |
+ Kind kind() const { return static_cast<Kind>(kind_); } |
}; |
+ private: |
+ RAW_HEAP_OBJECT_IMPLEMENTATION(PcDescriptors); |
+ |
+ intptr_t length_; // Number of descriptors. |
+ |
// Variable length data follows here. |
PcDescriptorRec* data() { OPEN_ARRAY_START(PcDescriptorRec, intptr_t); } |