void CodeGenerationData::EmitJitRoots( /*out*/std::vector<Handle<mirror::Object>>* roots) {
DCHECK(roots->empty());
roots->reserve(GetNumberOfJitRoots());
ClassLinker* class_linker = Runtime::Current()->GetClassLinker();
size_t index = 0; for (auto& entry : jit_string_roots_) { // Update the `roots` with the string, and replace the address temporarily // stored to the index in the table.
uint64_t address = entry.second;
roots->emplace_back(reinterpret_cast<StackReference<mirror::Object>*>(address));
DCHECK(roots->back() != nullptr);
DCHECK(roots->back()->IsString());
entry.second = index; if (!com::android::art::flags::weak_const_string()) { // Ensure the string is strongly interned. This is a requirement on how the JIT // handles strings. b/32995596
class_linker->GetInternTable()->InternStrong(roots->back()->AsString());
}
++index;
} for (auto& entry : jit_class_roots_) { // Update the `roots` with the class, and replace the address temporarily // stored to the index in the table.
uint64_t address = entry.second;
roots->emplace_back(reinterpret_cast<StackReference<mirror::Object>*>(address));
DCHECK(roots->back() != nullptr);
DCHECK(roots->back()->IsClass());
entry.second = index;
++index;
} for (auto& entry : jit_method_type_roots_) { // Update the `roots` with the MethodType, and replace the address temporarily // stored to the index in the table.
uint64_t address = entry.second;
roots->emplace_back(reinterpret_cast<StackReference<mirror::Object>*>(address));
DCHECK(roots->back() != nullptr);
DCHECK(roots->back()->InstanceOf(WellKnownClasses::java_lang_invoke_MethodType.Get()));
entry.second = index;
++index;
}
}
} // namespace art
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 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.