Index: third_party/WebKit/Source/core/style/ComputedStyle.h |
diff --git a/third_party/WebKit/Source/core/style/ComputedStyle.h b/third_party/WebKit/Source/core/style/ComputedStyle.h |
index a3f659a41fe1b3f9ff0251d9893730b1ff95ac0c..4599ef51fc2f6a888c06bb0d67f00391827c269e 100644 |
--- a/third_party/WebKit/Source/core/style/ComputedStyle.h |
+++ b/third_party/WebKit/Source/core/style/ComputedStyle.h |
@@ -383,20 +383,25 @@ protected: |
private: |
// TODO(sashab): Move these to the bottom of ComputedStyle. |
- ALWAYS_INLINE ComputedStyle(); |
+ ComputedStyle(); |
enum InitialStyleTag { |
InitialStyle |
}; |
- ALWAYS_INLINE explicit ComputedStyle(InitialStyleTag); |
- ALWAYS_INLINE ComputedStyle(const ComputedStyle&); |
+ explicit ComputedStyle(InitialStyleTag); |
+ ComputedStyle(const ComputedStyle&); |
static PassRefPtr<ComputedStyle> createInitialStyle(); |
- static inline ComputedStyle& mutableInitialStyle() |
+ static ComputedStyle& mutableInitialStyle() |
{ |
LEAK_SANITIZER_DISABLED_SCOPE; |
- DEFINE_STATIC_REF(ComputedStyle, s_initialStyle, (ComputedStyle::createInitialStyle())); |
- return *s_initialStyle; |
+ |
+ DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<ComputedStyle*>, s_initialStyle, |
+ new ThreadSpecific<ComputedStyle*>()); |
esprehn
2016/09/12 20:53:12
Can't put TLS here, it's too slow
|
+ if (!*s_initialStyle) { |
+ *s_initialStyle = PassRefPtr<ComputedStyle>(ComputedStyle::createInitialStyle()).leakRef(); |
+ } |
+ return **s_initialStyle; |
} |
public: |