LibUnicode: Provide string length to ICU string enumeration callbacks

Some callers need the raw nul-terminated c-string in this callback, to
pass to some other ICU method. But other callers will want a StringView.
We know the length already in `icu_string_enumeration_to_list`, so let's
just pass it along to avoid `strlen`.
This commit is contained in:
Timothy Flynn 2025-06-02 15:44:33 -04:00 committed by Shannon Booth
parent 21cff645a2
commit 422d72e85d
Notes: github-actions[bot] 2025-06-02 21:04:57 +00:00
3 changed files with 5 additions and 5 deletions

View file

@ -118,7 +118,7 @@ Vector<String> icu_string_enumeration_to_list(OwnPtr<icu::StringEnumeration> enu
if (icu_failure(status) || value == nullptr) if (icu_failure(status) || value == nullptr)
break; break;
if (!filter(value)) if (!filter(value, static_cast<size_t>(length)))
continue; continue;
if (bcp47_keyword) { if (bcp47_keyword) {
@ -134,7 +134,7 @@ Vector<String> icu_string_enumeration_to_list(OwnPtr<icu::StringEnumeration> enu
ALWAYS_INLINE Vector<String> icu_string_enumeration_to_list(OwnPtr<icu::StringEnumeration> enumeration, char const* bcp47_keyword) ALWAYS_INLINE Vector<String> icu_string_enumeration_to_list(OwnPtr<icu::StringEnumeration> enumeration, char const* bcp47_keyword)
{ {
return icu_string_enumeration_to_list(move(enumeration), bcp47_keyword, [](char const*) { return true; }); return icu_string_enumeration_to_list(move(enumeration), bcp47_keyword, [](char const*, size_t) { return true; });
} }
} }

View file

@ -107,8 +107,8 @@ static Vector<String> icu_available_time_zones(Optional<ByteString> const& regio
if (icu_failure(status)) if (icu_failure(status))
return { "UTC"_string }; return { "UTC"_string };
auto time_zones = icu_string_enumeration_to_list(move(time_zone_enumerator), nullptr, [](char const* zone) { auto time_zones = icu_string_enumeration_to_list(move(time_zone_enumerator), nullptr, [](char const* zone, size_t zone_length) {
return !is_legacy_non_iana_time_zone({ zone, strlen(zone) }); return !is_legacy_non_iana_time_zone({ zone, zone_length });
}); });
quick_sort(time_zones); quick_sort(time_zones);

View file

@ -153,7 +153,7 @@ Vector<String> const& available_number_systems()
if (icu_failure(status)) if (icu_failure(status))
return {}; return {};
auto number_systems = icu_string_enumeration_to_list(move(keywords), "nu", [&](char const* keyword) { auto number_systems = icu_string_enumeration_to_list(move(keywords), "nu", [&](char const* keyword, size_t) {
auto system = adopt_own_if_nonnull(icu::NumberingSystem::createInstanceByName(keyword, status)); auto system = adopt_own_if_nonnull(icu::NumberingSystem::createInstanceByName(keyword, status));
if (icu_failure(status)) if (icu_failure(status))
return false; return false;