Definition at line 110 of file class_finalizer.cc.
◆ InterfaceFinder()
Definition at line 112 of file class_finalizer.cc.
115 : class_table_(class_table),
116 array_handles_(zone),
117 class_handles_(zone),
118 type_handles_(zone),
119 cids_(cids) {}
◆ FindAllInterfaces()
void dart::InterfaceFinder::FindAllInterfaces |
( |
const Class & |
klass | ) |
|
|
inline |
Definition at line 121 of file class_finalizer.cc.
121 {
122
123 cids_->
Add(klass.id());
124
125 ScopedHandle<Array> array(&array_handles_);
126 ScopedHandle<Class> interface_class(&class_handles_);
127 ScopedHandle<Class> current_class(&class_handles_);
128 ScopedHandle<AbstractType>
type(&type_handles_);
129
130 *current_class = klass.ptr();
131 while (true) {
132
133 const intptr_t
cid = current_class->id();
135 break;
136 }
137
138
139 *array = klass.interfaces();
140 if (!array->IsNull()) {
141 for (intptr_t
i = 0;
i < array->Length(); ++
i) {
142 *
type ^= array->At(
i);
143 *interface_class = class_table_->
At(
type->type_class_id());
145 }
146 }
147
148
149 *
type = current_class->super_type();
150 if (
type->IsNull())
break;
151 *current_class = class_table_->
At(
type->type_class_id());
152 }
153 }
ClassPtr At(intptr_t cid) const
void FindAllInterfaces(const Class &klass)
The documentation for this class was generated from the following file: