Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Unified Diff: Source/heap/Visitor.h

Issue 222653003: Oilpan: Fix isAlive dispatching for GarbageCollectedMixins. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Add comment to virtual method Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/heap/HeapTest.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/heap/Visitor.h
diff --git a/Source/heap/Visitor.h b/Source/heap/Visitor.h
index 30c6a0c8ec0a6bbdf6170842fafa204dc89b94d9..4d52a0368166e6915a8deb84de796f9f2ac4132d 100644
--- a/Source/heap/Visitor.h
+++ b/Source/heap/Visitor.h
@@ -179,12 +179,7 @@ struct OffHeapCollectionTraceTrait;
template<typename T>
struct ObjectAliveTrait {
- static bool isAlive(Visitor*, T);
-};
-
-template<typename T>
-struct ObjectAliveTrait<Member<T> > {
- static bool isAlive(Visitor*, const Member<T>&);
+ static bool isAlive(Visitor*, T*);
};
// Visitor is used to traverse the Blink object graph. Used for the
@@ -366,7 +361,10 @@ public:
virtual bool isMarked(const void*) = 0;
- template<typename T> inline bool isAlive(T obj) { return ObjectAliveTrait<T>::isAlive(this, obj); }
+ template<typename T> inline bool isAlive(T* obj)
+ {
+ return ObjectAliveTrait<T>::isAlive(this, obj);
+ }
template<typename T> inline bool isAlive(const Member<T>& member)
{
return isAlive(member.get());
@@ -525,7 +523,7 @@ template<typename T, bool = NeedsAdjustAndMark<T>::value> class DefaultObjectAli
template<typename T>
class DefaultObjectAliveTrait<T, false> {
public:
- static bool isAlive(Visitor* visitor, T obj)
+ static bool isAlive(Visitor* visitor, T* obj)
{
return visitor->isMarked(obj);
}
@@ -534,20 +532,16 @@ public:
template<typename T>
class DefaultObjectAliveTrait<T, true> {
public:
- static bool isAlive(Visitor* visitor, T obj)
+ static bool isAlive(Visitor* visitor, T* obj)
{
return obj->isAlive(visitor);
}
};
-template<typename T> bool ObjectAliveTrait<T>::isAlive(Visitor* visitor, T obj)
+template<typename T> bool ObjectAliveTrait<T>::isAlive(Visitor* visitor, T* obj)
{
return DefaultObjectAliveTrait<T>::isAlive(visitor, obj);
}
-template<typename T> bool ObjectAliveTrait<Member<T> >::isAlive(Visitor* visitor, const Member<T>& obj)
-{
- return visitor->isMarked(obj.get());
-}
// The GarbageCollectedMixin interface and helper macro
// USING_GARBAGE_COLLECTED_MIXIN can be used to automatically define
« no previous file with comments | « Source/heap/HeapTest.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698