Index: Source/platform/heap/ThreadState.cpp |
diff --git a/Source/platform/heap/ThreadState.cpp b/Source/platform/heap/ThreadState.cpp |
index b90d493bf63ac4bf71a69da752add1a52661eee5..2b9bf156b8b5244e879346bf7167833b095321ce 100644 |
--- a/Source/platform/heap/ThreadState.cpp |
+++ b/Source/platform/heap/ThreadState.cpp |
@@ -101,6 +101,7 @@ static void* getStackStart() |
static const size_t MaxPooledWrapperPersistentRegionCount = 2; |
WTF::ThreadSpecific<ThreadState*>* ThreadState::s_threadSpecific = 0; |
+intptr_t ThreadState::s_mainThreadStackStart = 0; |
uint8_t ThreadState::s_mainThreadStateStorage[sizeof(ThreadState)]; |
SafePointBarrier* ThreadState::s_safePointBarrier = 0; |
bool ThreadState::s_inGC = false; |
@@ -311,6 +312,9 @@ ThreadState::ThreadState() |
ASSERT(!**s_threadSpecific); |
**s_threadSpecific = this; |
+ if (isMainThread()) |
+ s_mainThreadStackStart = reinterpret_cast<intptr_t>(m_startOfStack); |
+ |
InitializeHeaps<NumberOfHeaps>::init(m_heaps, this); |
m_weakCallbackStack = new CallbackStack(); |