| 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 "src/unicode.h" | 8 #include "src/unicode.h" |
| 9 #include "src/base/logging.h" | 9 #include "src/base/logging.h" |
| 10 #include "src/utils.h" | 10 #include "src/utils.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 entries_[c & kMask] = CacheEntry(c, 0); | 51 entries_[c & kMask] = CacheEntry(c, 0); |
| 52 return 0; | 52 return 0; |
| 53 } | 53 } |
| 54 } else { | 54 } else { |
| 55 return length; | 55 return length; |
| 56 } | 56 } |
| 57 } | 57 } |
| 58 | 58 |
| 59 | 59 |
| 60 uint16_t Latin1::ConvertNonLatin1ToLatin1(uint16_t c) { | 60 uint16_t Latin1::ConvertNonLatin1ToLatin1(uint16_t c) { |
| 61 ASSERT(c > Latin1::kMaxChar); | 61 DCHECK(c > Latin1::kMaxChar); |
| 62 switch (c) { | 62 switch (c) { |
| 63 // This are equivalent characters in unicode. | 63 // This are equivalent characters in unicode. |
| 64 case 0x39c: | 64 case 0x39c: |
| 65 case 0x3bc: | 65 case 0x3bc: |
| 66 return 0xb5; | 66 return 0xb5; |
| 67 // This is an uppercase of a Latin-1 character | 67 // This is an uppercase of a Latin-1 character |
| 68 // outside of Latin-1. | 68 // outside of Latin-1. |
| 69 case 0x178: | 69 case 0x178: |
| 70 return 0xff; | 70 return 0xff; |
| 71 } | 71 } |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 void Utf8Decoder<kBufferSize>::Reset(const char* stream, unsigned length) { | 177 void Utf8Decoder<kBufferSize>::Reset(const char* stream, unsigned length) { |
| 178 Utf8DecoderBase::Reset(buffer_, | 178 Utf8DecoderBase::Reset(buffer_, |
| 179 kBufferSize, | 179 kBufferSize, |
| 180 reinterpret_cast<const uint8_t*>(stream), | 180 reinterpret_cast<const uint8_t*>(stream), |
| 181 length); | 181 length); |
| 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 DCHECK(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::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 DCHECK(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 |