Bug 96568 - Change base64Encode() output type from Vector<char> to Vector<LChar>
Summary: Change base64Encode() output type from Vector<char> to Vector<LChar>
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Web Template Framework (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Patrick R. Gansterer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-12 15:18 PDT by Patrick R. Gansterer
Modified: 2012-09-13 14:08 PDT (History)
7 users (show)

See Also:


Attachments
Patch (14.01 KB, patch)
2012-09-12 15:24 PDT, Patrick R. Gansterer
benjamin: review-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick R. Gansterer 2012-09-12 15:18:36 PDT
Change base64Encode() output type from Vector<char> to Vector<LChar>
Comment 1 Patrick R. Gansterer 2012-09-12 15:24:33 PDT
Created attachment 163716 [details]
Patch
Comment 2 Benjamin Poulain 2012-09-12 15:45:06 PDT
Comment on attachment 163716 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=163716&action=review

It is a good idea, but unless there is a good reason for it, we should change all the APIs accordingly.

> Source/WTF/wtf/text/Base64.h:52
> -WTF_EXPORT_PRIVATE void base64Encode(const char*, unsigned, Vector<char>&, Base64EncodePolicy = Base64DoNotInsertLFs);
> -WTF_EXPORT_PRIVATE void base64Encode(const Vector<char>&, Vector<char>&, Base64EncodePolicy = Base64DoNotInsertLFs);
> -WTF_EXPORT_PRIVATE void base64Encode(const CString&, Vector<char>&, Base64EncodePolicy = Base64DoNotInsertLFs);
> +WTF_EXPORT_PRIVATE void base64Encode(const char*, unsigned, Vector<LChar>&, Base64EncodePolicy = Base64DoNotInsertLFs);
> +WTF_EXPORT_PRIVATE void base64Encode(const Vector<char>&, Vector<LChar>&, Base64EncodePolicy = Base64DoNotInsertLFs);
> +WTF_EXPORT_PRIVATE void base64Encode(const CString&, Vector<LChar>&, Base64EncodePolicy = Base64DoNotInsertLFs);
>  WTF_EXPORT_PRIVATE String base64Encode(const char*, unsigned, Base64EncodePolicy = Base64DoNotInsertLFs);
>  WTF_EXPORT_PRIVATE String base64Encode(const Vector<char>&, Base64EncodePolicy = Base64DoNotInsertLFs);
>  WTF_EXPORT_PRIVATE String base64Encode(const CString&, Base64EncodePolicy = Base64DoNotInsertLFs);

Consistency is important, we should probably change all the Vector<char> to Vector<LChar>.
Including the base64Decode().
Comment 3 Alexey Proskuryakov 2012-09-13 11:15:59 PDT
LChar is a type for Latin-1 characters, so it seems slightly misleading to use it where we know it's all ASCII.
Comment 4 Benjamin Poulain 2012-09-13 14:08:53 PDT
> LChar is a type for Latin-1 characters, so it seems slightly misleading to use it where we know it's all ASCII.

I am a bit divided on that. We use the type char for pretty much anything, not only ASCII.

Maybe a ::adopt(Vector<char>) that ASSERT if characters aren't all ASCII.