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

Unified Diff: runtime/vm/heap.h

Issue 10696029: Implement a 2-pass heap verification algorithm. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: rebase Created 8 years, 5 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 | « runtime/vm/dart.cc ('k') | runtime/vm/heap.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/heap.h
diff --git a/runtime/vm/heap.h b/runtime/vm/heap.h
index 4e59ff0f64591ab0118a626afb99c7bfed666e99..392e6f375779051abe899c13b8ed7ad7f291399f 100644
--- a/runtime/vm/heap.h
+++ b/runtime/vm/heap.h
@@ -17,6 +17,7 @@ namespace dart {
// Forward declarations.
class Isolate;
class ObjectPointerVisitor;
+class ObjectSet;
class VirtualMemory;
DECLARE_FLAG(bool, verbose_gc);
@@ -80,11 +81,17 @@ class Heap {
bool CodeContains(uword addr) const;
bool StubCodeContains(uword addr) const;
+ // Visit all pointers.
+ void IteratePointers(ObjectPointerVisitor* visitor);
+
// Visit all pointers in the space.
void IterateNewPointers(ObjectPointerVisitor* visitor);
void IterateOldPointers(ObjectPointerVisitor* visitor);
void IterateCodePointers(ObjectPointerVisitor* visitor);
+ // Visit all objects.
+ void IterateObjects(ObjectVisitor* visitor);
+
// Visit all object in the space.
void IterateNewObjects(ObjectVisitor* visitor);
void IterateOldObjects(ObjectVisitor* visitor);
@@ -122,6 +129,11 @@ class Heap {
// Print heap sizes.
void PrintSizes() const;
+ // Returns the [lowest, highest) addresses in the heap.
+ void StartEndAddress(uword* start, uword* end) const;
+
+ ObjectSet* CreateAllocatedObjectSet() const;
+
// Generates a profile of the current and VM isolate heaps.
void Profile(Dart_HeapProfileWriteCallback callback, void* stream) const;
« no previous file with comments | « runtime/vm/dart.cc ('k') | runtime/vm/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698