| Index: base/json/json_reader.h
|
| diff --git a/base/json/json_reader.h b/base/json/json_reader.h
|
| index be3aef2c4e73abf4b173773f99fbc7974c8a2cd9..ef556782cb9dac2906bed3327d9ae5d7bbd3eab1 100644
|
| --- a/base/json/json_reader.h
|
| +++ b/base/json/json_reader.h
|
| @@ -71,11 +71,11 @@ class BASE_EXPORT JSONReader {
|
| INVALID_TOKEN,
|
| };
|
|
|
| - Token(Type t, const wchar_t* b, int len)
|
| + Token(Type t, const char* b, int len)
|
| : type(t), begin(b), length(len) {}
|
|
|
| // Get the character that's one past the end of this token.
|
| - wchar_t NextChar() {
|
| + char NextChar() {
|
| return *(begin + length);
|
| }
|
|
|
| @@ -86,7 +86,7 @@ class BASE_EXPORT JSONReader {
|
| Type type;
|
|
|
| // A pointer into JSONReader::json_pos_ that's the beginning of this token.
|
| - const wchar_t* begin;
|
| + const char* begin;
|
|
|
| // End should be one char past the end of the token.
|
| int length;
|
| @@ -186,6 +186,17 @@ class BASE_EXPORT JSONReader {
|
| // (otherwise ParseStringToken would have failed).
|
| Value* DecodeString(const Token& token);
|
|
|
| + // Helper function for DecodeString that consumes UTF16 [0,2] code units and
|
| + // convers them to UTF8 code untis. |token| is the string token in which the
|
| + // units should be read, |i| is the position in the token at which the first
|
| + // code unit starts, immediately after the |\u|. This will be mutated if code
|
| + // units are consumed. |dest_string| is a string to which the UTF8 code unit
|
| + // should be appended. Returns true on success and false if there's an
|
| + // encoding error.
|
| + bool ConvertUTF16Units(const Token& token,
|
| + int* i,
|
| + std::string* dest_string);
|
| +
|
| // Grabs the next token in the JSON stream. This does not increment the
|
| // stream so it can be used to look ahead at the next token.
|
| Token ParseToken();
|
| @@ -198,17 +209,20 @@ class BASE_EXPORT JSONReader {
|
| bool EatComment();
|
|
|
| // Checks if |json_pos_| matches str.
|
| - bool NextStringMatch(const wchar_t* str, size_t length);
|
| + bool NextStringMatch(const char* str, size_t length);
|
|
|
| // Sets the error code that will be returned to the caller. The current
|
| // line and column are determined and added into the final message.
|
| - void SetErrorCode(const JsonParseError error, const wchar_t* error_pos);
|
| + void SetErrorCode(const JsonParseError error, const char* error_pos);
|
|
|
| // Pointer to the starting position in the input string.
|
| - const wchar_t* start_pos_;
|
| + const char* start_pos_;
|
|
|
| // Pointer to the current position in the input string.
|
| - const wchar_t* json_pos_;
|
| + const char* json_pos_;
|
| +
|
| + // Pointer to the last position in the input string.
|
| + const char* end_pos_;
|
|
|
| // Used to keep track of how many nested lists/dicts there are.
|
| int stack_depth_;
|
|
|