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

Unified Diff: src/global-handles.h

Issue 2498583002: [heap] Minor MC: Add marking (Closed)
Patch Set: Fix Created 4 years, 1 month 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: src/global-handles.h
diff --git a/src/global-handles.h b/src/global-handles.h
index 50e5ed6969b0f9a8a113fb4fe62bc48335890c18..0e431ddf21ad1d4cc1451b0c013c945ef0fd5263 100644
--- a/src/global-handles.h
+++ b/src/global-handles.h
@@ -5,6 +5,8 @@
#ifndef V8_GLOBAL_HANDLES_H_
#define V8_GLOBAL_HANDLES_H_
+#include <vector>
+
#include "include/v8.h"
#include "include/v8-profiler.h"
@@ -113,6 +115,8 @@ enum WeaknessType {
class GlobalHandles {
public:
+ enum IterationMode { HANDLE_PHANTOM_NODES, DONT_HANDLE_PHANTOM_NODES };
+
~GlobalHandles();
// Creates a new global handle that is alive until Destroy is called.
@@ -227,6 +231,7 @@ class GlobalHandles {
// Iterates over weak independent or unmodified handles.
// See the note above.
+ template <IterationMode mode>
void IterateNewSpaceWeakUnmodifiedRoots(ObjectVisitor* v);
// Identify unmodified objects that are in weak state and marks them
@@ -290,7 +295,13 @@ class GlobalHandles {
#ifdef DEBUG
void PrintStats();
void Print();
-#endif
+#endif // DEBUG
+
+#ifdef VERIFY_HEAP
+ typedef std::vector<std::pair<void*, uint8_t>> NewSpaceNodeStates;
+ NewSpaceNodeStates GetNewSpaceNodeStates();
+ void RestoreNewSpaceNodeStates(const NewSpaceNodeStates& states);
+#endif // VERIFY_HEAP
private:
explicit GlobalHandles(Isolate* isolate);
« no previous file with comments | « src/flag-definitions.h ('k') | src/global-handles.cc » ('j') | src/heap/mark-compact.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698