CHECK(dst_size != nullptr);
std::vector<uint8_t> tmp;
uint32_t t = 0, y = 0; int g = 3; for (size_t i = 0; src[i] != '\0'; ++i) {
uint8_t c = kBase64Map[src[i] & 0xFF]; if (c == 255) continue; // the final = symbols are read and used to trim the remaining bytes if (c == 254) {
c = 0; // prevent g < 0 which would potentially allow an overflow later if (--g < 0) {
*dst_size = 0; return nullptr;
}
} elseif (g != 3) { // we only allow = to be at the end
*dst_size = 0; return nullptr;
}
t = (t << 6) | c; if (++y == 4) {
tmp.push_back((t >> 16) & 255); if (g > 1) {
tmp.push_back((t >> 8) & 255);
} if (g > 2) {
tmp.push_back(t & 255);
}
y = t = 0;
}
} if (y != 0) {
*dst_size = 0; return nullptr;
}
std::unique_ptr<uint8_t[]> dst(new uint8_t[tmp.size()]);
*dst_size = tmp.size();
std::copy(tmp.begin(), tmp.end(), dst.get()); return dst.release();
}
} // namespace art
#endif// ART_LIBDEXFILE_DEX_BASE64_TEST_UTIL_H_
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.8 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.