if (group_flags & RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG) {
group_r_offset_delta = decoder.pop_front();
} if (group_flags & RELOCATION_GROUPED_BY_INFO_FLAG) {
reloc.r_info = decoder.pop_front();
}
#ifdefined(USE_RELA) const size_t group_flags_reloc = group_flags & (RELOCATION_GROUP_HAS_ADDEND_FLAG |
RELOCATION_GROUPED_BY_ADDEND_FLAG); if (group_flags_reloc == RELOCATION_GROUP_HAS_ADDEND_FLAG) { // Each relocation has an addend. This is the default situation with lld's current encoder.
} elseif (group_flags_reloc == (RELOCATION_GROUP_HAS_ADDEND_FLAG |
RELOCATION_GROUPED_BY_ADDEND_FLAG)) {
reloc.r_addend += decoder.pop_front();
} else {
reloc.r_addend = 0;
} #else if (__predict_false(group_flags & RELOCATION_GROUP_HAS_ADDEND_FLAG)) { // This platform does not support rela, and yet we have it encoded in android_rel section.
async_safe_fatal("unexpected r_addend in android.rel section");
} #endif
for (size_t i = 0; i < group_size; ++i) { if (group_flags & RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG) {
reloc.r_offset += group_r_offset_delta;
} else {
reloc.r_offset += decoder.pop_front();
} if ((group_flags & RELOCATION_GROUPED_BY_INFO_FLAG) == 0) {
reloc.r_info = decoder.pop_front();
} #ifdefined(USE_RELA) if (group_flags_reloc == RELOCATION_GROUP_HAS_ADDEND_FLAG) {
reloc.r_addend += decoder.pop_front();
} #endif if (!callback(reloc)) { returnfalse;
}
}
idx += group_size;
}
returntrue;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-28)
¤
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.