Chromium Code Reviews| Index: runtime/vm/object.h |
| diff --git a/runtime/vm/object.h b/runtime/vm/object.h |
| index 19802e796dd7f17a13294d36effcd65121896517..be927cc38cd302dc0693d5f9454e36f7dce6d36c 100644 |
| --- a/runtime/vm/object.h |
| +++ b/runtime/vm/object.h |
| @@ -2597,8 +2597,16 @@ class ExceptionHandlers : public Object { |
| // Holds deopt information at one deoptimization point. The information |
| -// is a list of DeoptInstr objects, specifying transformation information |
| -// for each slot in unoptimized frame(s). |
| +// is consists of two parts: |
|
srdjan
2013/05/07 23:11:45
remove 'is'
Vyacheslav Egorov (Google)
2013/05/07 23:28:21
Done.
|
| +// - first a prefix consiting of kMaterializeObject instructions describing |
| +// objects which had their allocation removed as part of AllocationSinking |
| +// pass and have to be materialized; |
| +// - followed by a list of DeoptInstr objects, specifying transformation |
| +// information for each slot in unoptimized frame(s). |
| +// Arguments for object materialization (class of instance to be allocated and |
| +// field-value pairs) are added as artificial slots to the expression stack |
| +// of the bottom-most frame. They are removed from the stack at the very end |
| +// of deoptimization by the deoptimization stub. |
| class DeoptInfo : public Object { |
| private: |
| // Describes the layout of deopt info data. The index of a deopt-info entry |
| @@ -2617,6 +2625,10 @@ class DeoptInfo : public Object { |
| // deoptimization translation. |
| intptr_t TranslationLength() const; |
| + // Size of the frame part of the translation not counting kMaterializeObject |
| + // instructions in the prefix. |
| + intptr_t FrameSize() const; |
| + |
| static RawDeoptInfo* New(intptr_t num_commands); |
| static const intptr_t kBytesPerElement = (kNumberOfEntries * kWordSize); |