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) |