| Index: third_party/WebKit/Source/platform/heap/Handle.h
|
| diff --git a/third_party/WebKit/Source/platform/heap/Handle.h b/third_party/WebKit/Source/platform/heap/Handle.h
|
| index 69cb7575950ac9f977932624164767e83a43e6da..8036c3bf0b669910d93bd4e705cc389d7775ff38 100644
|
| --- a/third_party/WebKit/Source/platform/heap/Handle.h
|
| +++ b/third_party/WebKit/Source/platform/heap/Handle.h
|
| @@ -240,13 +240,14 @@ private:
|
|
|
| void uninitialize()
|
| {
|
| - if (!m_persistentNode)
|
| - return;
|
| -
|
| if (crossThreadnessConfiguration == CrossThreadPersistentConfiguration) {
|
| - ProcessHeap::crossThreadPersistentRegion().freePersistentNode(m_persistentNode);
|
| + if (acquireLoad(reinterpret_cast<void* volatile*>(&m_persistentNode)))
|
| + ProcessHeap::crossThreadPersistentRegion().freePersistentNode(m_persistentNode);
|
| return;
|
| }
|
| +
|
| + if (!m_persistentNode)
|
| + return;
|
| ThreadState* state = ThreadStateFor<ThreadingTrait<T>::Affinity>::state();
|
| ASSERT(state->checkThread());
|
| // Persistent handle must be created and destructed in the same thread.
|
|
|