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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/pages.h" 5 #include "vm/pages.h"
6 6
7 #include "platform/assert.h" 7 #include "platform/assert.h"
8 #include "vm/gc_marker.h" 8 #include "vm/gc_marker.h"
9 #include "vm/gc_sweeper.h" 9 #include "vm/gc_sweeper.h"
10 #include "vm/object.h" 10 #include "vm/object.h"
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 } 301 }
302 302
303 page = large_pages_; 303 page = large_pages_;
304 while (page != NULL) { 304 while (page != NULL) {
305 page->VisitObjects(visitor); 305 page->VisitObjects(visitor);
306 page = page->next(); 306 page = page->next();
307 } 307 }
308 } 308 }
309 309
310 310
311 void PageSpace::SetPeer(RawObject* raw_obj, void* peer) {
312 if (peer == NULL) {
313 peer_table_.erase(raw_obj);
314 } else {
315 peer_table_[raw_obj] = peer;
316 }
317 }
318
319
320 void* PageSpace::GetPeer(RawObject* raw_obj) {
321 PeerTable::iterator it = peer_table_.find(raw_obj);
322 return (it == peer_table_.end()) ? NULL : it->second;
323 }
324
325
326 int64_t PageSpace::PeerCount() const {
327 return static_cast<int64_t>(peer_table_.size());
328 }
329
330
311 void PageSpace::VisitObjectPointers(ObjectPointerVisitor* visitor) const { 331 void PageSpace::VisitObjectPointers(ObjectPointerVisitor* visitor) const {
312 HeapPage* page = pages_; 332 HeapPage* page = pages_;
313 while (page != NULL) { 333 while (page != NULL) {
314 page->VisitObjectPointers(visitor); 334 page->VisitObjectPointers(visitor);
315 page = page->next(); 335 page = page->next();
316 } 336 }
317 337
318 page = large_pages_; 338 page = large_pages_;
319 while (page != NULL) { 339 while (page != NULL) {
320 page->VisitObjectPointers(visitor); 340 page->VisitObjectPointers(visitor);
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 return 0; 601 return 0;
582 } else { 602 } else {
583 ASSERT(total_time >= gc_time); 603 ASSERT(total_time >= gc_time);
584 int result= static_cast<int>((static_cast<double>(gc_time) / 604 int result= static_cast<int>((static_cast<double>(gc_time) /
585 static_cast<double>(total_time)) * 100); 605 static_cast<double>(total_time)) * 100);
586 return result; 606 return result;
587 } 607 }
588 } 608 }
589 609
590 } // namespace dart 610 } // namespace dart
OLDNEW
« 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