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

Unified Diff: Source/platform/heap/Heap.h

Issue 1110853002: Oilpan: In ASan, poison all unmarked objects before start sweeping (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 8 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 | « no previous file | Source/platform/heap/Heap.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/heap/Heap.h
diff --git a/Source/platform/heap/Heap.h b/Source/platform/heap/Heap.h
index 161a8ffe92a3a20e4c30a10384871417b598c1ff..e329bd8144d5b95e4d93ceec49744818a7dab439 100644
--- a/Source/platform/heap/Heap.h
+++ b/Source/platform/heap/Heap.h
@@ -384,6 +384,9 @@ public:
virtual void removeFromHeap() = 0;
virtual void sweep() = 0;
virtual void markUnmarkedObjectsDead() = 0;
+#if defined(ADDRESS_SANITIZER)
+ virtual void poisonUnmarkedObjects() = 0;
+#endif
// Check if the given address points to an object in this
// heap page. If so, find the start of that object and mark it
// using the given Visitor. Otherwise do nothing. The pointer must
@@ -468,6 +471,9 @@ public:
virtual void removeFromHeap() override;
virtual void sweep() override;
virtual void markUnmarkedObjectsDead() override;
+#if defined(ADDRESS_SANITIZER)
+ virtual void poisonUnmarkedObjects() override;
+#endif
virtual void checkAndMarkPointer(Visitor*, Address) override;
virtual void markOrphaned() override;
#if ENABLE(GC_PROFILING)
@@ -496,10 +502,6 @@ public:
NormalPageHeap* heapForNormalPage();
void clearObjectStartBitMap();
-#if defined(ADDRESS_SANITIZER)
- void poisonUnmarkedObjects();
-#endif
-
private:
HeapObjectHeader* findHeaderFromAddress(Address);
void populateObjectStartBitMap();
@@ -531,6 +533,9 @@ public:
virtual void removeFromHeap() override;
virtual void sweep() override;
virtual void markUnmarkedObjectsDead() override;
+#if defined(ADDRESS_SANITIZER)
+ virtual void poisonUnmarkedObjects() override;
+#endif
virtual void checkAndMarkPointer(Visitor*, Address) override;
virtual void markOrphaned() override;
@@ -741,6 +746,9 @@ public:
size_t objectPayloadSizeForTesting();
void prepareHeapForTermination();
void prepareForSweep();
+#if defined(ADDRESS_SANITIZER)
+ void poisonUnmarkedObjects();
+#endif
Address lazySweep(size_t, size_t gcInfoIndex);
void sweepUnsweptPage();
// Returns true if we have swept all pages within the deadline.
« no previous file with comments | « no previous file | Source/platform/heap/Heap.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698