Flutter Engine
The Flutter Engine
Public Member Functions | List of all members
dart::DeferredObjectRef Class Reference

#include <deferred_objects.h>

Inheritance diagram for dart::DeferredObjectRef:
dart::DeferredSlot

Public Member Functions

 DeferredObjectRef (intptr_t index, ObjectPtr *slot, DeferredSlot *next)
 
virtual void Materialize (DeoptContext *deopt_context)
 
intptr_t index () const
 
- Public Member Functions inherited from dart::DeferredSlot
 DeferredSlot (ObjectPtr *slot, DeferredSlot *next)
 
virtual ~DeferredSlot ()
 
ObjectPtrslot () const
 
DeferredSlotnext () const
 
virtual void Materialize (DeoptContext *deopt_context)=0
 

Detailed Description

Definition at line 117 of file deferred_objects.h.

Constructor & Destructor Documentation

◆ DeferredObjectRef()

dart::DeferredObjectRef::DeferredObjectRef ( intptr_t  index,
ObjectPtr slot,
DeferredSlot next 
)
inline

Definition at line 119 of file deferred_objects.h.

120 : DeferredSlot(slot, next), index_(index) {}
ObjectPtr * slot() const
DeferredSlot * next() const
DeferredSlot(ObjectPtr *slot, DeferredSlot *next)

Member Function Documentation

◆ index()

intptr_t dart::DeferredObjectRef::index ( ) const
inline

Definition at line 124 of file deferred_objects.h.

124{ return index_; }

◆ Materialize()

void dart::DeferredObjectRef::Materialize ( DeoptContext deopt_context)
virtual

Implements dart::DeferredSlot.

Definition at line 87 of file deferred_objects.cc.

87 {
88 DeferredObject* obj = deopt_context->GetDeferredObject(index());
89 *slot() = obj->object();
90 if (FLAG_trace_deoptimization_verbose) {
91 const Class& cls = Class::Handle(IsolateGroup::Current()->class_table()->At(
92 Object::Handle(obj->object()).GetClassId()));
93 OS::PrintErr("writing instance of class %s ref at %" Px ".\n",
94 cls.ToCString(), reinterpret_cast<uword>(slot()));
95 }
96}
static IsolateGroup * Current()
Definition: isolate.h:539
static void static void PrintErr(const char *format,...) PRINTF_ATTRIBUTE(1
intptr_t GetClassId() const
Definition: object.h:341
static Object & Handle()
Definition: object.h:407
uintptr_t uword
Definition: globals.h:501
#define Px
Definition: globals.h:410

The documentation for this class was generated from the following files: