webengine/osswebengine/WebCore/platform/TextEncoding.cpp
changeset 10 a359256acfc6
parent 0 dd21522fd290
child 11 c8a366e56285
equal deleted inserted replaced
5:10e98eab6f85 10:a359256acfc6
   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