Lines Matching refs:iftable

71 #include "mirror/iftable-inl.h"
579 // Setup the single, global copy of "iftable".
871 auto* iftable = klass->GetIfTable();
872 if (iftable != nullptr) {
874 if (iftable->GetMethodArrayCount(i) > 0) {
876 iftable->GetMethodArray(i), nullptr, pointer_size, image_spaces);
3495 // Use the single, global copies of "interfaces" and "iftable"
5923 // - iftable: The iftable we are searching for an overriding method on.
5936 Handle<mirror::IfTable> iftable,
5943 DCHECK(iftable.Get() != nullptr);
5945 DCHECK_LT(ifstart, iftable->Count());
5946 DCHECK_EQ(iface.Get(), iftable->GetInterface(ifstart));
5949 size_t iftable_count = iftable->Count();
5954 current_iface.Assign(iftable->GetInterface(k));
6000 MutableHandle<mirror::IfTable> iftable(hs.NewHandle(klass->GetIfTable()));
6004 // Iterates over the klass's iftable in reverse
6008 DCHECK_LT(k, iftable->Count());
6010 iface.Assign(iftable->GetInterface(k));
6035 iftable,
6052 iftable,
6358 // the iftable and every interface precedes all of its sub-interfaces in this list.
6364 // This returns the total number of items in the iftable. The iftable might be resized down after
6370 // Upon entry into this function iftable is a copy of the superclass's iftable with the first
6373 // iftable must be large enough to hold all interfaces without changing its size.
6374 static size_t FillIfTable(mirror::IfTable* iftable,
6379 // This is the set of all class's already in the iftable. Used to make checking if a class has
6384 mirror::Class* iface = iftable->GetInterface(i);
6390 // Let us call the first filled_ifcount elements of iftable the current-iface-list.
6406 iftable->SetInterface(filled_ifcount, super_interface);
6413 iftable->SetInterface(filled_ifcount, interface);
6427 // Check that the iftable is ordered correctly.
6429 mirror::Class* if_a = iftable->GetInterface(i);
6431 mirror::Class* if_b = iftable->GetInterface(j);
6467 // Class just inherits marker interfaces from parent so recycle parent's iftable.
6491 MutableHandle<mirror::IfTable> iftable(hs.NewHandle(AllocIfTable(self, ifcount)));
6492 if (UNLIKELY(iftable.Get() == nullptr)) {
6496 // Fill in table with superclass's iftable.
6501 iftable->SetInterface(i, super_interface);
6520 new_ifcount = FillIfTable(iftable.Get(), super_ifcount, std::move(to_add));
6525 // Shrink iftable in case duplicates were found
6528 iftable.Assign(down_cast<mirror::IfTable*>(
6529 iftable->CopyOf(self, new_ifcount * mirror::IfTable::kMax)));
6530 if (UNLIKELY(iftable.Get() == nullptr)) {
6538 klass->SetIfTable(iftable.Get());
6639 // No imt in the super class, need to reconstruct from the iftable.
6673 MutableHandle<mirror::IfTable> iftable(hs.NewHandle(klass->GetIfTable()));
6705 size_t num_methods = iftable->GetInterface(i)->NumDeclaredVirtualMethods();
6725 iftable->SetMethodArray(i, method_array);
6742 size_t num_methods = iftable->GetInterface(i)->NumDeclaredVirtualMethods();
6750 ? hs2.NewHandle(iftable->GetMethodArray(i))
6761 // at the super-classes iftable methods (copied into method_array previously) when we are
6781 auto* interface_method = iftable->GetInterface(i)->GetVirtualMethod(j, image_pointer_size_);
6928 // the iftable to find if there is a NSME or AME.)
6981 // We found a default method implementation. Record it in the iftable and IMT.
7202 // Go fix up all the stale iftable pointers.
7204 for (size_t j = 0, count = iftable->GetMethodArrayCount(i); j < count; ++j) {
7205 auto* method_array = iftable->GetMethodArray(i);