OLD | NEW |
1 // Copyright 2007-2010 the V8 project authors. All rights reserved. | 1 // Copyright 2007-2010 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_UNICODE_INL_H_ | 5 #ifndef V8_UNICODE_INL_H_ |
6 #define V8_UNICODE_INL_H_ | 6 #define V8_UNICODE_INL_H_ |
7 | 7 |
8 #include "unicode.h" | 8 #include "unicode.h" |
9 #include "checks.h" | 9 #include "checks.h" |
10 #include "platform.h" | 10 #include "utils.h" |
11 | 11 |
12 namespace unibrow { | 12 namespace unibrow { |
13 | 13 |
14 template <class T, int s> bool Predicate<T, s>::get(uchar code_point) { | 14 template <class T, int s> bool Predicate<T, s>::get(uchar code_point) { |
15 CacheEntry entry = entries_[code_point & kMask]; | 15 CacheEntry entry = entries_[code_point & kMask]; |
16 if (entry.code_point_ == code_point) return entry.value_; | 16 if (entry.code_point_ == code_point) return entry.value_; |
17 return CalculateValue(code_point); | 17 return CalculateValue(code_point); |
18 } | 18 } |
19 | 19 |
20 template <class T, int s> bool Predicate<T, s>::CalculateValue( | 20 template <class T, int s> bool Predicate<T, s>::CalculateValue( |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 } | 182 } |
183 | 183 |
184 template <unsigned kBufferSize> | 184 template <unsigned kBufferSize> |
185 unsigned Utf8Decoder<kBufferSize>::WriteUtf16(uint16_t* data, | 185 unsigned Utf8Decoder<kBufferSize>::WriteUtf16(uint16_t* data, |
186 unsigned length) const { | 186 unsigned length) const { |
187 ASSERT(length > 0); | 187 ASSERT(length > 0); |
188 if (length > utf16_length_) length = utf16_length_; | 188 if (length > utf16_length_) length = utf16_length_; |
189 // memcpy everything in buffer. | 189 // memcpy everything in buffer. |
190 unsigned buffer_length = | 190 unsigned buffer_length = |
191 last_byte_of_buffer_unused_ ? kBufferSize - 1 : kBufferSize; | 191 last_byte_of_buffer_unused_ ? kBufferSize - 1 : kBufferSize; |
192 unsigned memcpy_length = length <= buffer_length ? length : buffer_length; | 192 unsigned memcpy_length = length <= buffer_length ? length : buffer_length; |
193 v8::internal::OS::MemCopy(data, buffer_, memcpy_length*sizeof(uint16_t)); | 193 v8::internal::MemCopy(data, buffer_, memcpy_length * sizeof(uint16_t)); |
194 if (length <= buffer_length) return length; | 194 if (length <= buffer_length) return length; |
195 ASSERT(unbuffered_start_ != NULL); | 195 ASSERT(unbuffered_start_ != NULL); |
196 // Copy the rest the slow way. | 196 // Copy the rest the slow way. |
197 WriteUtf16Slow(unbuffered_start_, | 197 WriteUtf16Slow(unbuffered_start_, |
198 data + buffer_length, | 198 data + buffer_length, |
199 length - buffer_length); | 199 length - buffer_length); |
200 return length; | 200 return length; |
201 } | 201 } |
202 | 202 |
203 } // namespace unibrow | 203 } // namespace unibrow |
204 | 204 |
205 #endif // V8_UNICODE_INL_H_ | 205 #endif // V8_UNICODE_INL_H_ |
OLD | NEW |