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

Unified Diff: third_party/WebKit/Source/platform/heap/TraceTraits.h

Issue 2084513002: Store raw pointers in ScriptWrappableVisitor markind deque (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup Created 4 years, 6 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
Index: third_party/WebKit/Source/platform/heap/TraceTraits.h
diff --git a/third_party/WebKit/Source/platform/heap/TraceTraits.h b/third_party/WebKit/Source/platform/heap/TraceTraits.h
index 3009ac4393bece664377c927fa203615087771cf..5bae4425f4752d695cf3d0e2f8f3d91ccd1325b1 100644
--- a/third_party/WebKit/Source/platform/heap/TraceTraits.h
+++ b/third_party/WebKit/Source/platform/heap/TraceTraits.h
@@ -39,10 +39,15 @@ class AdjustAndMarkTrait<T, false> {
public:
static void markWrapper(const WrapperVisitor* visitor, const T* t)
{
- if (visitor->markWrapperHeader(t)) {
+ if (visitor->markWrapperHeader(heapObjectHeader(t))) {
+ visitor->markWrappersInAllWorlds(t);
visitor->dispatchTraceWrappers(t);
}
}
+ static HeapObjectHeader* heapObjectHeader(const T* t)
+ {
+ return HeapObjectHeader::fromPayload(t);
+ }
template<typename VisitorDispatcher>
static void mark(VisitorDispatcher visitor, const T* t)
@@ -85,6 +90,10 @@ public:
{
t->adjustAndMarkWrapper(visitor);
}
+ static HeapObjectHeader* heapObjectHeader(const T* t)
+ {
+ return t->adjustAndGetHeapObjectHeader();
+ }
template<typename VisitorDispatcher>
static void mark(VisitorDispatcher visitor, const T* self)
@@ -170,9 +179,13 @@ public:
static void trace(Visitor*, void* self);
static void trace(InlinedGlobalMarkingVisitor, void* self);
- static void markWrapper(const WrapperVisitor* visitor, const T* t)
+ static void markWrapper(const WrapperVisitor* visitor, const void* t)
+ {
+ AdjustAndMarkTrait<T>::markWrapper(visitor, reinterpret_cast<const T*>(t));
+ }
+ static HeapObjectHeader* heapObjectHeader(const void* t)
{
- AdjustAndMarkTrait<T>::markWrapper(visitor, t);
+ return AdjustAndMarkTrait<T>::heapObjectHeader(reinterpret_cast<const T*>(t));
}
template<typename VisitorDispatcher>
« no previous file with comments | « third_party/WebKit/Source/platform/heap/GarbageCollected.h ('k') | third_party/WebKit/Source/platform/heap/WrapperVisitor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698