WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
258789
atob() clones the output more than necessary
https://bugs.webkit.org/show_bug.cgi?id=258789
Summary
atob() clones the output more than necessary
Jarred Sumner
Reported
2023-07-02 20:04:29 PDT
From:
https://github.com/WebKit/WebKit/blob/de456d04c10080ce71f48d14b3a9d278854d5f8a/Source/WebCore/page/Base64Utilities.cpp#L53
auto decodedData = base64Decode(encodedString, Base64DecodeMode::DefaultValidatePaddingAndIgnoreWhitespace); if (!decodedData) return Exception { InvalidCharacterError }; return String(decodedData->data(), decodedData->size()); String(const char*, unsigned) calls StringImpl::create(reinterpret_cast<const LChar*>(ptr), length). This is an extra clone, from the Vector<uint8_t> -> StringImpl. Seems like moving the Vector would also clone it. Possible suggestions: - base64Decode could have a template arg to use WTF::StringBuilder? - Maybe there's a way using ExternalStringImpl?
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2023-07-09 20:05:15 PDT
<
rdar://problem/111993365
>
Keith Miller
Comment 2
2023-07-12 09:53:59 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/15781
EWS
Comment 3
2023-07-12 17:17:47 PDT
Committed
266016@main
(985e10033996): <
https://commits.webkit.org/266016@main
> Reviewed commits have been landed. Closing PR #15781 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug