diff --git a/Libraries/LibURL/URL.cpp b/Libraries/LibURL/URL.cpp index b5f96a4dd07..9eb85537081 100644 --- a/Libraries/LibURL/URL.cpp +++ b/Libraries/LibURL/URL.cpp @@ -498,7 +498,7 @@ bool is_public_suffix(StringView host) Optional get_public_suffix(StringView host) { - return MUST(PublicSuffixData::the()->get_public_suffix(host)); + return PublicSuffixData::the()->get_public_suffix(host); } // https://github.com/publicsuffix/list/wiki/Format#algorithm diff --git a/Meta/Lagom/Tools/CodeGenerators/LibURL/GeneratePublicSuffixData.cpp b/Meta/Lagom/Tools/CodeGenerators/LibURL/GeneratePublicSuffixData.cpp index ef3e363cb8a..3a064e6b3f8 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibURL/GeneratePublicSuffixData.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibURL/GeneratePublicSuffixData.cpp @@ -75,7 +75,7 @@ public: } bool is_public_suffix(StringView host); - ErrorOr> get_public_suffix(StringView string); + Optional get_public_suffix(StringView string); private: Trie m_dictionary; @@ -139,47 +139,47 @@ bool PublicSuffixData::is_public_suffix(StringView host) return it.is_end() && node.has_metadata(); } -ErrorOr> PublicSuffixData::get_public_suffix(StringView string) +Optional PublicSuffixData::get_public_suffix(StringView string) { - auto input = string.split_view("."sv); + auto input = string.split_view('.'); input.reverse(); StringBuilder overall_search_string; StringBuilder search_string; for (auto part : input) { search_string.clear(); - TRY(search_string.try_append(TRY(overall_search_string.to_string()))); - TRY(search_string.try_append(part)); + search_string.append(overall_search_string.string_view()); + search_string.append(part); if (is_public_suffix(search_string.string_view())) { - overall_search_string.append(TRY(String::from_utf8(part))); - overall_search_string.append("."sv); + overall_search_string.append(part); + overall_search_string.append('.'); continue; } search_string.clear(); - TRY(search_string.try_append(TRY(overall_search_string.to_string()))); - TRY(search_string.try_append("*"sv)); + search_string.append(overall_search_string.string_view()); + search_string.append('.'); if (is_public_suffix(search_string.string_view())) { - overall_search_string.append(TRY(String::from_utf8(part))); - overall_search_string.append("."sv); + overall_search_string.append(part); + overall_search_string.append('.'); continue; } break; } - auto view = overall_search_string.string_view().split_view("."sv); + auto view = overall_search_string.string_view().split_view('.'); view.reverse(); StringBuilder return_string_builder; return_string_builder.join('.', view); - auto returnString = TRY(return_string_builder.to_string()); - if (!returnString.is_empty()) - return returnString; - return Optional {}; + if (return_string_builder.is_empty()) + return Optional {}; + + return MUST(return_string_builder.to_string()); } }