| Index: third_party/WebKit/Source/platform/heap/PersistentNode.h
|
| diff --git a/third_party/WebKit/Source/platform/heap/PersistentNode.h b/third_party/WebKit/Source/platform/heap/PersistentNode.h
|
| index 4775fd5f4ef8ad92a04c9a3a9b14fc1ef4629702..2478a1d7abef5baa2833b6fe8f128a6f07dd5735 100644
|
| --- a/third_party/WebKit/Source/platform/heap/PersistentNode.h
|
| +++ b/third_party/WebKit/Source/platform/heap/PersistentNode.h
|
| @@ -177,7 +177,8 @@ public:
|
| void allocatePersistentNode(PersistentNode*& persistentNode, void* self, TraceCallback trace)
|
| {
|
| MutexLocker lock(m_mutex);
|
| - persistentNode = m_persistentRegion->allocatePersistentNode(self, trace);
|
| + PersistentNode* node = m_persistentRegion->allocatePersistentNode(self, trace);
|
| + releaseStore(reinterpret_cast<void* volatile*>(&persistentNode), node);
|
| }
|
|
|
| void freePersistentNode(PersistentNode*& persistentNode)
|
| @@ -193,7 +194,7 @@ public:
|
| if (!persistentNode)
|
| return;
|
| m_persistentRegion->freePersistentNode(persistentNode);
|
| - persistentNode = nullptr;
|
| + releaseStore(reinterpret_cast<void* volatile*>(&persistentNode), nullptr);
|
| }
|
|
|
| void tracePersistentNodes(Visitor* visitor)
|
|
|