// Read the proto for the signature component.
uint32_t tmp = ComputeModifiedUtf8Hash(
dex_file.GetTypeDescriptor(dex_file.GetTypeId(proto_id.return_type_idx_)));
// Mix in the argument types. // Note: we could consider just using the shorty. This would be faster, at the price of // potential collisions. const dex::TypeList* param_types = dex_file.GetProtoParameters(proto_id); if (param_types != nullptr) { for (size_t i = 0; i != param_types->Size(); ++i) { const dex::TypeItem& type = param_types->GetTypeItem(i);
tmp = 31 * tmp + ComputeModifiedUtf8Hash(
dex_file.GetTypeDescriptor(dex_file.GetTypeId(type.type_idx_)));
}
}
inline uint32_t ImTable::GetImtIndex(ArtMethod* method) {
DCHECK(!method->IsCopied());
DCHECK(!method->IsProxyMethod()); if (!method->IsAbstract()) { // For default methods, where we cannot store the imt_index, we use the // method_index instead. We mask it with the closest power of two to // simplify the interpreter. return method->GetMethodIndex() & (ImTable::kSizeTruncToPowerOfTwo - 1);
} return GetImtIndexForAbstractMethod(*method->GetDexFile(), method->GetDexMethodIndex());
}
} // namespace art
#endif// ART_RUNTIME_IMTABLE_INL_H_
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.