Index: Source/platform/Supplementable.h |
diff --git a/Source/platform/Supplementable.h b/Source/platform/Supplementable.h |
index c5e5b0719b767e488d124470895cccbaa19d3bbf..a15d59cabe3ade8cb9958434e6fa48b60b83ee02 100644 |
--- a/Source/platform/Supplementable.h |
+++ b/Source/platform/Supplementable.h |
@@ -143,13 +143,9 @@ public: |
{ |
return host ? host->requireSupplement(key) : 0; |
} |
- |
- // FIXME: Oilpan: Remove this callback once PersistentHeapSupplementable is removed again. |
- virtual void persistentHostHasBeenDestroyed() { } |
}; |
-// Helper class for implementing Supplementable, HeapSupplementable, and |
-// PersistentHeapSupplementable. |
+// Helper class for implementing Supplementable and HeapSupplementable. |
template<typename T, bool isGarbageCollected = false> |
class SupplementableBase { |
public: |
@@ -215,37 +211,6 @@ public: |
} |
}; |
-// This class is used to make an off-heap class supplementable with supplements |
-// that are on-heap, aka. HeapSupplements. |
-template<typename T> |
-class GC_PLUGIN_IGNORE("http://crbug.com/395036") PersistentHeapSupplementable : public SupplementableBase<T, true> { |
-public: |
- PersistentHeapSupplementable() : m_root(this) { } |
- virtual ~PersistentHeapSupplementable() |
- { |
- typedef typename SupplementableTraits<T, true>::SupplementMap::iterator SupplementIterator; |
- for (SupplementIterator it = this->m_supplements.begin(); it != this->m_supplements.end(); ++it) |
- it->value->persistentHostHasBeenDestroyed(); |
- } |
- |
- virtual void trace(Visitor* visitor) |
- { |
- visitor->trace(this->m_supplements); |
- SupplementableBase<T, true>::trace(visitor); |
- } |
- |
-private: |
- class TraceDelegate : PersistentBase<ThreadLocalPersistents<AnyThread>, TraceDelegate> { |
- public: |
- TraceDelegate(PersistentHeapSupplementable* owner) : m_owner(owner) { } |
- void trace(Visitor* visitor) { m_owner->trace(visitor); } |
- private: |
- PersistentHeapSupplementable* m_owner; |
- }; |
- |
- TraceDelegate m_root; |
-}; |
- |
template<typename T> |
class Supplement : public SupplementBase<T, false> { }; |
@@ -257,9 +222,7 @@ public: |
virtual void trace(Visitor* visitor) |
{ |
// No tracing of off-heap supplements. We should not have any Supplementable |
- // object on the heap. Either the object is HeapSupplementable or if it is |
- // off heap it should use PersistentHeapSupplementable to trace any on-heap |
- // supplements. |
+ // object on the heap. |
COMPILE_ASSERT(!IsGarbageCollectedType<T>::value, GarbageCollectedObjectMustBeHeapSupplementable); |
SupplementableBase<T, false>::trace(visitor); |
} |