AK+Meta: Update simdutf to version 5.5.0

Contains many fixes found upstream by fuzzers. Also includes fixes for
CPU-specific inconsistencies with null inputs.
This commit is contained in:
Timothy Flynn 2024-09-19 14:25:38 -04:00 committed by Tim Flynn
parent ee060ed206
commit d19b31529f
Notes: github-actions[bot] 2024-09-19 19:49:50 +00:00
3 changed files with 1 additions and 29 deletions

View file

@ -131,10 +131,6 @@ ErrorOr<void> code_point_to_utf16(Utf16Data& string, u32 code_point, Endianness
size_t utf16_code_unit_length_from_utf8(StringView string) size_t utf16_code_unit_length_from_utf8(StringView string)
{ {
// FIXME: The CPU-specific implementations behave differently on null inputs. We treat null views as an empty string.
if (string.is_empty())
return 0;
return simdutf::utf16_length_from_utf8(string.characters_without_null_termination(), string.length()); return simdutf::utf16_length_from_utf8(string.characters_without_null_termination(), string.length());
} }
@ -300,10 +296,6 @@ bool Utf16View::starts_with(Utf16View const& needle) const
bool Utf16View::validate() const bool Utf16View::validate() const
{ {
// FIXME: The CPU-specific implementations behave differently on null inputs. We treat null views as an empty string.
if (is_empty())
return true;
switch (m_endianness) { switch (m_endianness) {
case Endianness::Host: case Endianness::Host:
return simdutf::validate_utf16(char_data(), length_in_code_units()); return simdutf::validate_utf16(char_data(), length_in_code_units());
@ -317,12 +309,6 @@ bool Utf16View::validate() const
bool Utf16View::validate(size_t& valid_code_units) const bool Utf16View::validate(size_t& valid_code_units) const
{ {
// FIXME: The CPU-specific implementations behave differently on null inputs. We treat null views as an empty string.
if (is_empty()) {
valid_code_units = 0;
return true;
}
auto result = [&]() { auto result = [&]() {
switch (m_endianness) { switch (m_endianness) {
case Endianness::Host: case Endianness::Host:
@ -341,10 +327,6 @@ bool Utf16View::validate(size_t& valid_code_units) const
size_t Utf16View::calculate_length_in_code_points() const size_t Utf16View::calculate_length_in_code_points() const
{ {
// FIXME: The CPU-specific implementations behave differently on null inputs. We treat null views as an empty string.
if (is_empty())
return 0;
// FIXME: simdutf's code point length method assumes valid UTF-16, whereas Utf16View uses U+FFFD as a replacement // FIXME: simdutf's code point length method assumes valid UTF-16, whereas Utf16View uses U+FFFD as a replacement
// for invalid code points. If we change Utf16View to only accept valid encodings as an invariant, we can // for invalid code points. If we change Utf16View to only accept valid encodings as an invariant, we can
// remove this branch. // remove this branch.

View file

@ -74,10 +74,6 @@ Utf8View Utf8View::unicode_substring_view(size_t code_point_offset, size_t code_
size_t Utf8View::calculate_length() const size_t Utf8View::calculate_length() const
{ {
// FIXME: The CPU-specific implementations behave differently on null inputs. We treat null views as an empty string.
if (is_empty())
return 0;
// FIXME: simdutf's code point length method assumes valid UTF-8, whereas Utf8View uses U+FFFD as a replacement // FIXME: simdutf's code point length method assumes valid UTF-8, whereas Utf8View uses U+FFFD as a replacement
// for invalid code points. If we change Utf8View to only accept valid encodings as an invariant, we can // for invalid code points. If we change Utf8View to only accept valid encodings as an invariant, we can
// remove this branch. // remove this branch.
@ -157,12 +153,6 @@ Utf8View Utf8View::trim(Utf8View const& characters, TrimMode mode) const
bool Utf8View::validate(size_t& valid_bytes, AllowSurrogates allow_surrogates) const bool Utf8View::validate(size_t& valid_bytes, AllowSurrogates allow_surrogates) const
{ {
// FIXME: The CPU-specific implementations behave differently on null inputs. We treat null views as an empty string.
if (is_empty()) {
valid_bytes = 0;
return true;
}
auto result = simdutf::validate_utf8_with_errors(m_string.characters_without_null_termination(), m_string.length()); auto result = simdutf::validate_utf8_with_errors(m_string.characters_without_null_termination(), m_string.length());
valid_bytes = result.count; valid_bytes = result.count;

View file

@ -102,7 +102,7 @@
}, },
{ {
"name": "simdutf", "name": "simdutf",
"version": "5.3.4#0" "version": "5.5.0#0"
}, },
{ {
"name": "skia", "name": "skia",