1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 09:04:59 +00:00

AK: Return KString instead of String from encode_hex in the Kernel

This let's us propagate allocation errors from this API.
This commit is contained in:
Idan Horowitz 2022-02-15 23:25:25 +02:00 committed by Andreas Kling
parent d296001f3f
commit 3219ce3d61
3 changed files with 32 additions and 6 deletions

View file

@ -80,15 +80,20 @@ UUID::UUID(StringView uuid_string_view, Endianness endianness)
ErrorOr<NonnullOwnPtr<Kernel::KString>> UUID::to_string() const
{
StringBuilder builder(36);
TRY(builder.try_append(encode_hex(m_uuid_buffer.span().trim(4)).view()));
auto nibble0 = TRY(encode_hex(m_uuid_buffer.span().trim(4)));
TRY(builder.try_append(nibble0->view()));
TRY(builder.try_append('-'));
TRY(builder.try_append(encode_hex(m_uuid_buffer.span().slice(4).trim(2)).view()));
auto nibble1 = TRY(encode_hex(m_uuid_buffer.span().slice(4).trim(2)));
TRY(builder.try_append(nibble1->view()));
TRY(builder.try_append('-'));
TRY(builder.try_append(encode_hex(m_uuid_buffer.span().slice(6).trim(2)).view()));
auto nibble2 = TRY(encode_hex(m_uuid_buffer.span().slice(6).trim(2)));
TRY(builder.try_append(nibble2->view()));
TRY(builder.try_append('-'));
TRY(builder.try_append(encode_hex(m_uuid_buffer.span().slice(8).trim(2)).view()));
auto nibble3 = TRY(encode_hex(m_uuid_buffer.span().slice(8).trim(2)));
TRY(builder.try_append(nibble3->view()));
TRY(builder.try_append('-'));
TRY(builder.try_append(encode_hex(m_uuid_buffer.span().slice(10).trim(6)).view()));
auto nibble4 = TRY(encode_hex(m_uuid_buffer.span().slice(10).trim(6)));
TRY(builder.try_append(nibble4->view()));
return Kernel::KString::try_create(builder.string_view());
}
#else