159 if (*this == UTF16BigEndianEncoding() || *this == UTF16LittleEndianEncoding()) |
159 if (*this == UTF16BigEndianEncoding() || *this == UTF16LittleEndianEncoding()) |
160 return UTF8Encoding(); |
160 return UTF8Encoding(); |
161 return *this; |
161 return *this; |
162 } |
162 } |
163 |
163 |
|
164 static TextEncoding* globalASCIIEncoding; |
164 const TextEncoding& ASCIIEncoding() |
165 const TextEncoding& ASCIIEncoding() |
165 { |
166 { |
166 static TextEncoding globalASCIIEncoding("ASCII"); |
167 if( !globalASCIIEncoding ) { |
167 return globalASCIIEncoding; |
168 globalASCIIEncoding = new TextEncoding("ASCII"); |
168 } |
169 } |
169 |
170 return *globalASCIIEncoding; |
|
171 } |
|
172 |
|
173 static TextEncoding* globalLatin1Encoding; |
170 const TextEncoding& Latin1Encoding() |
174 const TextEncoding& Latin1Encoding() |
171 { |
175 { |
172 static TextEncoding globalLatin1Encoding("Latin-1"); |
176 if( !globalLatin1Encoding ) { |
173 return globalLatin1Encoding; |
177 globalLatin1Encoding = new TextEncoding("Latin-1"); |
174 } |
178 } |
175 |
179 return *globalLatin1Encoding; |
|
180 } |
|
181 |
|
182 static TextEncoding* globalUTF16BigEndianEncoding; |
176 const TextEncoding& UTF16BigEndianEncoding() |
183 const TextEncoding& UTF16BigEndianEncoding() |
177 { |
184 { |
178 static TextEncoding globalUTF16BigEndianEncoding("UTF-16BE"); |
185 if( !globalUTF16BigEndianEncoding ) { |
179 return globalUTF16BigEndianEncoding; |
186 globalUTF16BigEndianEncoding = new TextEncoding("UTF-16BE"); |
180 } |
187 } |
181 |
188 return *globalUTF16BigEndianEncoding; |
|
189 } |
|
190 |
|
191 static TextEncoding* globalUTF16LittleEndianEncoding; |
182 const TextEncoding& UTF16LittleEndianEncoding() |
192 const TextEncoding& UTF16LittleEndianEncoding() |
183 { |
193 { |
184 static TextEncoding globalUTF16LittleEndianEncoding("UTF-16LE"); |
194 if( !globalUTF16LittleEndianEncoding ) { |
185 return globalUTF16LittleEndianEncoding; |
195 globalUTF16LittleEndianEncoding = new TextEncoding("UTF-16LE"); |
186 } |
196 } |
187 |
197 return *globalUTF16LittleEndianEncoding; |
|
198 } |
|
199 |
|
200 static TextEncoding* globalUTF32BigEndianEncoding; |
188 const TextEncoding& UTF32BigEndianEncoding() |
201 const TextEncoding& UTF32BigEndianEncoding() |
189 { |
202 { |
190 static TextEncoding globalUTF32BigEndianEncoding("UTF-32BE"); |
203 if( !globalUTF32BigEndianEncoding ) { |
191 return globalUTF32BigEndianEncoding; |
204 globalUTF32BigEndianEncoding = new TextEncoding("UTF-32BE"); |
192 } |
205 } |
193 |
206 return *globalUTF32BigEndianEncoding; |
|
207 } |
|
208 |
|
209 static TextEncoding* globalUTF32LittleEndianEncoding; |
194 const TextEncoding& UTF32LittleEndianEncoding() |
210 const TextEncoding& UTF32LittleEndianEncoding() |
195 { |
211 { |
196 static TextEncoding globalUTF32LittleEndianEncoding("UTF-32LE"); |
212 if( !globalUTF32LittleEndianEncoding ) { |
197 return globalUTF32LittleEndianEncoding; |
213 globalUTF32LittleEndianEncoding = new TextEncoding("UTF-32LE"); |
198 } |
214 } |
199 |
215 return *globalUTF32LittleEndianEncoding; |
200 |
216 } |
|
217 |
|
218 static TextEncoding* globalUTF8Encoding; |
201 const TextEncoding& UTF8Encoding() |
219 const TextEncoding& UTF8Encoding() |
202 { |
220 { |
203 static TextEncoding globalUTF8Encoding("UTF-8"); |
221 if( !globalUTF8Encoding ) { |
204 return globalUTF8Encoding; |
222 globalUTF8Encoding = new TextEncoding("UTF-8"); |
205 } |
223 } |
206 |
224 return *globalUTF8Encoding; |
|
225 } |
|
226 |
|
227 static TextEncoding* globalWindowsLatin1Encoding; |
207 const TextEncoding& WindowsLatin1Encoding() |
228 const TextEncoding& WindowsLatin1Encoding() |
208 { |
229 { |
209 static TextEncoding globalWindowsLatin1Encoding("WinLatin-1"); |
230 if( !globalWindowsLatin1Encoding ) { |
210 return globalWindowsLatin1Encoding; |
231 globalWindowsLatin1Encoding = new TextEncoding("WinLatin-1"); |
|
232 } |
|
233 return *globalWindowsLatin1Encoding; |
|
234 } |
|
235 |
|
236 void deleteTextEncodings() { |
|
237 |
|
238 // Delete all encodings and set to NULL |
|
239 delete globalASCIIEncoding; |
|
240 globalASCIIEncoding = NULL; |
|
241 delete globalLatin1Encoding; |
|
242 globalLatin1Encoding = NULL; |
|
243 delete globalUTF16BigEndianEncoding; |
|
244 globalUTF16BigEndianEncoding = NULL; |
|
245 delete globalUTF16LittleEndianEncoding; |
|
246 globalUTF16LittleEndianEncoding = NULL; |
|
247 delete globalUTF32BigEndianEncoding; |
|
248 globalUTF32BigEndianEncoding = NULL; |
|
249 delete globalUTF32LittleEndianEncoding; |
|
250 globalUTF32LittleEndianEncoding = NULL; |
|
251 delete globalUTF8Encoding; |
|
252 globalUTF8Encoding = NULL; |
|
253 delete globalWindowsLatin1Encoding; |
|
254 globalWindowsLatin1Encoding = NULL; |
|
255 |
211 } |
256 } |
212 |
257 |
213 } // namespace WebCore |
258 } // namespace WebCore |