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

Unified Diff: runtime/vm/pages.cc

Issue 10905251: Lazy peer API. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: rebased Created 8 years, 3 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: runtime/vm/pages.cc
diff --git a/runtime/vm/pages.cc b/runtime/vm/pages.cc
index 5168ff5d494fc000e2768c00d2ef920465c38efa..d33e1538f37f8211d758a47c8281d7ddd4059009 100644
--- a/runtime/vm/pages.cc
+++ b/runtime/vm/pages.cc
@@ -308,6 +308,26 @@ void PageSpace::VisitObjects(ObjectVisitor* visitor) const {
}
+void PageSpace::SetPeer(RawObject* raw_obj, void* peer) {
+ if (peer == NULL) {
+ peer_table_.erase(raw_obj);
+ } else {
+ peer_table_[raw_obj] = peer;
+ }
+}
+
+
+void* PageSpace::GetPeer(RawObject* raw_obj) {
+ PeerTable::iterator it = peer_table_.find(raw_obj);
+ return (it == peer_table_.end()) ? NULL : it->second;
+}
+
+
+int64_t PageSpace::PeerCount() const {
+ return static_cast<int64_t>(peer_table_.size());
+}
+
+
void PageSpace::VisitObjectPointers(ObjectPointerVisitor* visitor) const {
HeapPage* page = pages_;
while (page != NULL) {
« runtime/vm/dart_api_impl.cc ('K') | « runtime/vm/pages.h ('k') | runtime/vm/scavenger.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698