| Index: runtime/vm/deferred_objects.h
|
| diff --git a/runtime/vm/deferred_objects.h b/runtime/vm/deferred_objects.h
|
| index 9619d16e5ab1be72e8dc7186ba3ad7da404a876d..8186985384235935508477fb51687c040c2ba1d2 100644
|
| --- a/runtime/vm/deferred_objects.h
|
| +++ b/runtime/vm/deferred_objects.h
|
| @@ -157,6 +157,9 @@ class DeferredObject {
|
|
|
| RawInstance* object();
|
|
|
| + // Fill object with actual field values.
|
| + void Fill();
|
| +
|
| private:
|
| enum {
|
| kClassIndex = 0,
|
| @@ -169,10 +172,11 @@ class DeferredObject {
|
| kFieldEntrySize,
|
| };
|
|
|
| - // Materializes the object. Returns amount of values that were consumed
|
| - // and should be removed from the expression stack at the very end of
|
| - // deoptimization.
|
| - void Materialize();
|
| + // Allocate the object but keep it's fields null-initialized. Actual field
|
| + // values will be filled later by the Fill method. This separation between
|
| + // allocation and filling is needed because dematerialized objects form
|
| + // a graph which can contain cycles.
|
| + void Create();
|
|
|
| RawObject* GetClass() const {
|
| return args_[kClassIndex];
|
|
|