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

Side by Side Diff: src/unicode.h

Issue 11349: Character range uncanonicalization. (Closed)
Patch Set: Created 12 years, 1 month 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
« no previous file with comments | « src/jsregexp.cc ('k') | src/unicode.cc » ('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 2007-2008 the V8 project authors. All rights reserved. 1 // Copyright 2007-2008 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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 // map differently depending on context are always looked up. 73 // map differently depending on context are always looked up.
74 template <class T, int size = 256> 74 template <class T, int size = 256>
75 class Mapping { 75 class Mapping {
76 public: 76 public:
77 inline Mapping() { } 77 inline Mapping() { }
78 inline int get(uchar c, uchar n, uchar* result); 78 inline int get(uchar c, uchar n, uchar* result);
79 private: 79 private:
80 friend class Test; 80 friend class Test;
81 int CalculateValue(uchar c, uchar n, uchar* result); 81 int CalculateValue(uchar c, uchar n, uchar* result);
82 struct CacheEntry { 82 struct CacheEntry {
83 inline CacheEntry() : code_point_(0), offset_(0) { } 83 inline CacheEntry() : code_point_(kNoChar), offset_(0) { }
84 inline CacheEntry(uchar code_point, signed offset) 84 inline CacheEntry(uchar code_point, signed offset)
85 : code_point_(code_point), 85 : code_point_(code_point),
86 offset_(offset) { } 86 offset_(offset) { }
87 uchar code_point_ : 21; 87 uchar code_point_ : 21;
88 signed offset_ : 21; 88 signed offset_ : 21;
89 static const int kNoChar = (1 << 21) - 1;
89 }; 90 };
90 static const int kSize = size; 91 static const int kSize = size;
91 static const int kMask = kSize - 1; 92 static const int kMask = kSize - 1;
92 CacheEntry entries_[kSize]; 93 CacheEntry entries_[kSize];
93 }; 94 };
94 95
95 class UnicodeData { 96 class UnicodeData {
96 private: 97 private:
97 friend class Test; 98 friend class Test;
98 static int GetByteCount(); 99 static int GetByteCount();
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 uchar* result, 259 uchar* result,
259 bool* allow_caching_ptr); 260 bool* allow_caching_ptr);
260 }; 261 };
261 struct Ecma262UnCanonicalize { 262 struct Ecma262UnCanonicalize {
262 static const int kMaxWidth = 4; 263 static const int kMaxWidth = 4;
263 static int Convert(uchar c, 264 static int Convert(uchar c,
264 uchar n, 265 uchar n,
265 uchar* result, 266 uchar* result,
266 bool* allow_caching_ptr); 267 bool* allow_caching_ptr);
267 }; 268 };
269 struct CanonicalizationRange {
270 static const int kMaxWidth = 1;
271 static int Convert(uchar c,
272 uchar n,
273 uchar* result,
274 bool* allow_caching_ptr);
275 };
268 276
269 } // namespace unibrow 277 } // namespace unibrow
270 278
271 #endif // __UNIBROW_H__ 279 #endif // __UNIBROW_H__
OLDNEW
« no previous file with comments | « src/jsregexp.cc ('k') | src/unicode.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698