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

Unified Diff: Source/wtf/text/TextEncoding.cpp

Issue 810033005: Initialize TextEncoding singletons in a threadsafe manner. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 11 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/wtf/text/TextEncoding.cpp
diff --git a/Source/wtf/text/TextEncoding.cpp b/Source/wtf/text/TextEncoding.cpp
index 293afb4ecb6a048f96173b28440353ea1db703d8..8882e6c5213fa07b2deb809d57c3799052f894ba 100644
--- a/Source/wtf/text/TextEncoding.cpp
+++ b/Source/wtf/text/TextEncoding.cpp
@@ -32,6 +32,7 @@
#include <unicode/unorm.h>
#include "wtf/OwnPtr.h"
#include "wtf/StdLibExtras.h"
+#include "wtf/Threading.h"
#include "wtf/text/CString.h"
#include "wtf/text/WTFString.h"
@@ -39,7 +40,7 @@ namespace WTF {
static const TextEncoding& UTF7Encoding()
{
- static TextEncoding globalUTF7Encoding("UTF-7");
+ AtomicallyInitializedStatic(TextEncoding, globalUTF7Encoding = *new TextEncoding("UTF-7"));
return globalUTF7Encoding;
}
@@ -174,50 +175,50 @@ const TextEncoding& TextEncoding::encodingForFormSubmission() const
const TextEncoding& ASCIIEncoding()
{
- static TextEncoding globalASCIIEncoding("ASCII");
+ AtomicallyInitializedStatic(TextEncoding, globalASCIIEncoding = *new TextEncoding("ASCII"));
return globalASCIIEncoding;
}
const TextEncoding& Latin1Encoding()
{
- static TextEncoding globalLatin1Encoding("latin1");
+ AtomicallyInitializedStatic(TextEncoding, globalLatin1Encoding = *new TextEncoding("latin1"));
return globalLatin1Encoding;
}
const TextEncoding& UTF16BigEndianEncoding()
{
- static TextEncoding globalUTF16BigEndianEncoding("UTF-16BE");
+ AtomicallyInitializedStatic(TextEncoding, globalUTF16BigEndianEncoding = *new TextEncoding("UTF-16BE"));
return globalUTF16BigEndianEncoding;
}
const TextEncoding& UTF16LittleEndianEncoding()
{
- static TextEncoding globalUTF16LittleEndianEncoding("UTF-16LE");
+ AtomicallyInitializedStatic(TextEncoding, globalUTF16LittleEndianEncoding = *new TextEncoding("UTF-16LE"));
return globalUTF16LittleEndianEncoding;
}
const TextEncoding& UTF32BigEndianEncoding()
{
- static TextEncoding globalUTF32BigEndianEncoding("UTF-32BE");
+ AtomicallyInitializedStatic(TextEncoding, globalUTF32BigEndianEncoding = *new TextEncoding("UTF-32BE"));
return globalUTF32BigEndianEncoding;
}
const TextEncoding& UTF32LittleEndianEncoding()
{
- static TextEncoding globalUTF32LittleEndianEncoding("UTF-32LE");
+ AtomicallyInitializedStatic(TextEncoding, globalUTF32LittleEndianEncoding = *new TextEncoding("UTF-32LE"));
return globalUTF32LittleEndianEncoding;
}
const TextEncoding& UTF8Encoding()
{
- static TextEncoding globalUTF8Encoding("UTF-8");
+ AtomicallyInitializedStatic(TextEncoding, globalUTF8Encoding = *new TextEncoding("UTF-8"));
ASSERT(globalUTF8Encoding.isValid());
return globalUTF8Encoding;
}
const TextEncoding& WindowsLatin1Encoding()
{
- static TextEncoding globalWindowsLatin1Encoding("WinLatin1");
+ AtomicallyInitializedStatic(TextEncoding, globalWindowsLatin1Encoding = *new TextEncoding("WinLatin1"));
return globalWindowsLatin1Encoding;
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698