| Index: third_party/WebKit/Source/wtf/StackUtil.h
|
| diff --git a/third_party/WebKit/Source/wtf/StackUtil.h b/third_party/WebKit/Source/wtf/StackUtil.h
|
| index 39b137c58380dab1759aeffd88a87000e5e821f3..c9b9e842b63973e71fdf33ced1df01e81cc8bdc4 100644
|
| --- a/third_party/WebKit/Source/wtf/StackUtil.h
|
| +++ b/third_party/WebKit/Source/wtf/StackUtil.h
|
| @@ -18,37 +18,32 @@ WTF_EXPORT void* getStackStart();
|
|
|
| namespace internal {
|
|
|
| -WTF_EXPORT uintptr_t mainThreadUnderestimatedStackSize();
|
| +WTF_EXPORT extern uintptr_t s_mainThreadStackStart;
|
| +WTF_EXPORT extern uintptr_t s_mainThreadUnderestimatedStackSize;
|
| +
|
| +WTF_EXPORT void initializeMainThreadStackEstimate();
|
|
|
| #if OS(WIN) && COMPILER(MSVC)
|
| size_t threadStackSize();
|
| #endif
|
|
|
| +} // namespace internal
|
| +
|
| // Returns true if the function is not called on the main thread. Note carefully
|
| // that this function may have false positives, i.e. it can return true even if
|
| // we are on the main thread. If the function returns false, we are certainly
|
| -// on the main thread. Must be WTF_EXPORT due to template inlining in
|
| -// ThreadSpecific.
|
| -inline WTF_EXPORT bool mayNotBeMainThread() {
|
| - // getStackStart is exclusive, not inclusive (i.e. it points past the last
|
| - // page of the stack in linear order). So, to ensure an inclusive comparison,
|
| - // subtract here and in mainThreadUnderestimatedStackSize().
|
| - static uintptr_t s_mainThreadStackStart =
|
| - reinterpret_cast<uintptr_t>(getStackStart()) - sizeof(void*);
|
| - static uintptr_t s_mainThreadUnderestimatedStackSize =
|
| - mainThreadUnderestimatedStackSize();
|
| +// on the main thread.
|
| +inline bool mayNotBeMainThread() {
|
| uintptr_t dummy;
|
| uintptr_t addressDiff =
|
| - s_mainThreadStackStart - reinterpret_cast<uintptr_t>(&dummy);
|
| + internal::s_mainThreadStackStart - reinterpret_cast<uintptr_t>(&dummy);
|
| // This is a fast way to judge if we are in the main thread.
|
| // If |&dummy| is within |s_mainThreadUnderestimatedStackSize| byte from
|
| // the stack start of the main thread, we judge that we are in
|
| // the main thread.
|
| - return addressDiff >= s_mainThreadUnderestimatedStackSize;
|
| + return addressDiff >= internal::s_mainThreadUnderestimatedStackSize;
|
| }
|
|
|
| -} // namespace internal
|
| -
|
| } // namespace WTF
|
|
|
| #endif // StackUtil_h
|
|
|