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

Side by Side Diff: third_party/WebKit/Source/wtf/text/TextEncoding.cpp

Issue 2478653002: Don't initialize ICU replacement character for UTF-32 encodings (Closed)
Patch Set: Don't use zero-length array initializer, to keep MSVC happy Created 4 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2006 Alexey Proskuryakov <ap@nypop.com> 3 * Copyright (C) 2006 Alexey Proskuryakov <ap@nypop.com>
4 * Copyright (C) 2007-2009 Torch Mobile, Inc. 4 * Copyright (C) 2007-2009 Torch Mobile, Inc.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 return m_name == a; 94 return m_name == a;
95 } 95 }
96 96
97 bool TextEncoding::isNonByteBasedEncoding() const { 97 bool TextEncoding::isNonByteBasedEncoding() const {
98 if (noExtendedTextEncodingNameUsed()) { 98 if (noExtendedTextEncodingNameUsed()) {
99 return *this == UTF16LittleEndianEncoding() || 99 return *this == UTF16LittleEndianEncoding() ||
100 *this == UTF16BigEndianEncoding(); 100 *this == UTF16BigEndianEncoding();
101 } 101 }
102 102
103 return *this == UTF16LittleEndianEncoding() || 103 return *this == UTF16LittleEndianEncoding() ||
104 *this == UTF16BigEndianEncoding() || 104 *this == UTF16BigEndianEncoding() || *this == UTF32Encoding() ||
105 *this == UTF32BigEndianEncoding() || 105 *this == UTF32BigEndianEncoding() ||
106 *this == UTF32LittleEndianEncoding(); 106 *this == UTF32LittleEndianEncoding();
107 } 107 }
108 108
109 bool TextEncoding::isUTF7Encoding() const { 109 bool TextEncoding::isUTF7Encoding() const {
110 if (noExtendedTextEncodingNameUsed()) 110 if (noExtendedTextEncodingNameUsed())
111 return false; 111 return false;
112 112
113 return *this == UTF7Encoding(); 113 return *this == UTF7Encoding();
114 } 114 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 return globalUTF16BigEndianEncoding; 149 return globalUTF16BigEndianEncoding;
150 } 150 }
151 151
152 const TextEncoding& UTF16LittleEndianEncoding() { 152 const TextEncoding& UTF16LittleEndianEncoding() {
153 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, 153 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding,
154 globalUTF16LittleEndianEncoding, 154 globalUTF16LittleEndianEncoding,
155 new TextEncoding("UTF-16LE")); 155 new TextEncoding("UTF-16LE"));
156 return globalUTF16LittleEndianEncoding; 156 return globalUTF16LittleEndianEncoding;
157 } 157 }
158 158
159 // UTF-32 is UTF-32LE with an implicit BOM.
160 const TextEncoding& UTF32Encoding() {
161 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, globalUTF32Encoding,
162 new TextEncoding("UTF-32"));
163 return globalUTF32Encoding;
164 }
165
159 const TextEncoding& UTF32BigEndianEncoding() { 166 const TextEncoding& UTF32BigEndianEncoding() {
160 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, 167 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding,
161 globalUTF32BigEndianEncoding, 168 globalUTF32BigEndianEncoding,
162 new TextEncoding("UTF-32BE")); 169 new TextEncoding("UTF-32BE"));
163 return globalUTF32BigEndianEncoding; 170 return globalUTF32BigEndianEncoding;
164 } 171 }
165 172
166 const TextEncoding& UTF32LittleEndianEncoding() { 173 const TextEncoding& UTF32LittleEndianEncoding() {
167 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, 174 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding,
168 globalUTF32LittleEndianEncoding, 175 globalUTF32LittleEndianEncoding,
169 new TextEncoding("UTF-32LE")); 176 new TextEncoding("UTF-32LE"));
170 return globalUTF32LittleEndianEncoding; 177 return globalUTF32LittleEndianEncoding;
171 } 178 }
172 179
173 const TextEncoding& UTF8Encoding() { 180 const TextEncoding& UTF8Encoding() {
174 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, globalUTF8Encoding, 181 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, globalUTF8Encoding,
175 new TextEncoding("UTF-8")); 182 new TextEncoding("UTF-8"));
176 ASSERT(globalUTF8Encoding.isValid()); 183 ASSERT(globalUTF8Encoding.isValid());
177 return globalUTF8Encoding; 184 return globalUTF8Encoding;
178 } 185 }
179 186
180 const TextEncoding& WindowsLatin1Encoding() { 187 const TextEncoding& WindowsLatin1Encoding() {
181 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, 188 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding,
182 globalWindowsLatin1Encoding, 189 globalWindowsLatin1Encoding,
183 new TextEncoding("WinLatin1")); 190 new TextEncoding("WinLatin1"));
184 return globalWindowsLatin1Encoding; 191 return globalWindowsLatin1Encoding;
185 } 192 }
186 193
187 } // namespace WTF 194 } // namespace WTF
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/wtf/text/TextEncoding.h ('k') | third_party/WebKit/Source/wtf/text/TextEncodingTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698