| Index: Source/platform/heap/PersistentNode.h
|
| diff --git a/Source/platform/heap/PersistentNode.h b/Source/platform/heap/PersistentNode.h
|
| index fa18fa32cff10145a0f7fe1bd0dece9d240dd449..338adf2b4ca7ba114ac580986d81928571d3d502 100644
|
| --- a/Source/platform/heap/PersistentNode.h
|
| +++ b/Source/platform/heap/PersistentNode.h
|
| @@ -77,6 +77,11 @@ public:
|
| return !m_trace;
|
| }
|
|
|
| + void* self() const
|
| + {
|
| + return m_self;
|
| + }
|
| +
|
| private:
|
| // If this PersistentNode is in use:
|
| // - m_self points to the corresponding Persistent handle.
|
| @@ -94,6 +99,7 @@ private:
|
| PersistentNodeSlots* m_next;
|
| PersistentNode m_slot[slotCount];
|
| friend class PersistentRegion;
|
| + friend class CrossThreadPersistentRegion;
|
| };
|
|
|
| // PersistentRegion provides a region of PersistentNodes. PersistentRegion
|
| @@ -139,6 +145,8 @@ public:
|
| int numberOfPersistents();
|
|
|
| private:
|
| + friend CrossThreadPersistentRegion;
|
| +
|
| void ensurePersistentNodeSlots(void*, TraceCallback);
|
|
|
| PersistentNode* m_freeListHead;
|
| @@ -170,6 +178,8 @@ public:
|
| m_persistentRegion->tracePersistentNodes(visitor);
|
| }
|
|
|
| + void prepareForThreadStateTermination(ThreadState*);
|
| +
|
| private:
|
| // We don't make CrossThreadPersistentRegion inherit from PersistentRegion
|
| // because we don't want to virtualize performance-sensitive methods
|
|
|