Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Side by Side Diff: src/unicode.h

Issue 12783002: Some Utf8Length microoptimizations (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/api.cc ('k') | src/unicode-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 #endif 142 #endif
143 // Returns 0 if character does not convert to single latin-1 character 143 // Returns 0 if character does not convert to single latin-1 character
144 // or if the character doesn't not convert back to latin-1 via inverse 144 // or if the character doesn't not convert back to latin-1 via inverse
145 // operation (upper to lower, etc). 145 // operation (upper to lower, etc).
146 static inline uint16_t ConvertNonLatin1ToLatin1(uint16_t); 146 static inline uint16_t ConvertNonLatin1ToLatin1(uint16_t);
147 }; 147 };
148 148
149 class Utf8 { 149 class Utf8 {
150 public: 150 public:
151 static inline uchar Length(uchar chr, int previous); 151 static inline uchar Length(uchar chr, int previous);
152 static inline unsigned EncodeOneByte(char* out, uint8_t c);
152 static inline unsigned Encode( 153 static inline unsigned Encode(
153 char* out, uchar c, int previous); 154 char* out, uchar c, int previous);
154 static uchar CalculateValue(const byte* str, 155 static uchar CalculateValue(const byte* str,
155 unsigned length, 156 unsigned length,
156 unsigned* cursor); 157 unsigned* cursor);
157 static const uchar kBadChar = 0xFFFD; 158 static const uchar kBadChar = 0xFFFD;
158 static const unsigned kMaxEncodedSize = 4; 159 static const unsigned kMaxEncodedSize = 4;
159 static const unsigned kMaxOneByteChar = 0x7f; 160 static const unsigned kMaxOneByteChar = 0x7f;
160 static const unsigned kMaxTwoByteChar = 0x7ff; 161 static const unsigned kMaxTwoByteChar = 0x7ff;
161 static const unsigned kMaxThreeByteChar = 0xffff; 162 static const unsigned kMaxThreeByteChar = 0xffff;
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 static const int kMaxWidth = 1; 269 static const int kMaxWidth = 1;
269 static int Convert(uchar c, 270 static int Convert(uchar c,
270 uchar n, 271 uchar n,
271 uchar* result, 272 uchar* result,
272 bool* allow_caching_ptr); 273 bool* allow_caching_ptr);
273 }; 274 };
274 275
275 } // namespace unibrow 276 } // namespace unibrow
276 277
277 #endif // V8_UNICODE_H_ 278 #endif // V8_UNICODE_H_
OLDNEW
« no previous file with comments | « src/api.cc ('k') | src/unicode-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698