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

Side by Side Diff: runtime/vm/isolate.cc

Issue 1346473002: Move megamorphic cache table into the Dart heap. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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/isolate.h" 5 #include "vm/isolate.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "platform/json.h" 9 #include "platform/json.h"
10 #include "vm/code_observers.h" 10 #include "vm/code_observers.h"
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 #define REUSABLE_HANDLE_SCOPE_INIT(object) 649 #define REUSABLE_HANDLE_SCOPE_INIT(object)
650 #endif // defined(DEBUG) 650 #endif // defined(DEBUG)
651 651
652 #define REUSABLE_HANDLE_INITIALIZERS(object) \ 652 #define REUSABLE_HANDLE_INITIALIZERS(object) \
653 object##_handle_(NULL), 653 object##_handle_(NULL),
654 654
655 Isolate::Isolate(const Dart_IsolateFlags& api_flags) 655 Isolate::Isolate(const Dart_IsolateFlags& api_flags)
656 : vm_tag_(0), 656 : vm_tag_(0),
657 store_buffer_(new StoreBuffer()), 657 store_buffer_(new StoreBuffer()),
658 thread_registry_(new ThreadRegistry()), 658 thread_registry_(new ThreadRegistry()),
659 megamorphic_cache_table_(this),
659 message_notify_callback_(NULL), 660 message_notify_callback_(NULL),
660 name_(NULL), 661 name_(NULL),
661 debugger_name_(NULL), 662 debugger_name_(NULL),
662 start_time_(OS::GetCurrentTimeMicros()), 663 start_time_(OS::GetCurrentTimeMicros()),
663 main_port_(0), 664 main_port_(0),
664 origin_id_(0), 665 origin_id_(0),
665 pause_capability_(0), 666 pause_capability_(0),
666 terminate_capability_(0), 667 terminate_capability_(0),
667 errors_fatal_(true), 668 errors_fatal_(true),
668 heap_(NULL), 669 heap_(NULL),
(...skipping 947 matching lines...) Expand 10 before | Expand all | Expand 10 after
1616 bool visit_prologue_weak_handles, 1617 bool visit_prologue_weak_handles,
1617 bool validate_frames) { 1618 bool validate_frames) {
1618 ASSERT(visitor != NULL); 1619 ASSERT(visitor != NULL);
1619 1620
1620 // Visit objects in the object store. 1621 // Visit objects in the object store.
1621 object_store()->VisitObjectPointers(visitor); 1622 object_store()->VisitObjectPointers(visitor);
1622 1623
1623 // Visit objects in the class table. 1624 // Visit objects in the class table.
1624 class_table()->VisitObjectPointers(visitor); 1625 class_table()->VisitObjectPointers(visitor);
1625 1626
1626 // Visit objects in the megamorphic cache.
1627 megamorphic_cache_table()->VisitObjectPointers(visitor);
1628
1629 // Visit objects in per isolate stubs. 1627 // Visit objects in per isolate stubs.
1630 StubCode::VisitObjectPointers(visitor); 1628 StubCode::VisitObjectPointers(visitor);
1631 1629
1632 // Visit objects in isolate specific handles area. 1630 // Visit objects in isolate specific handles area.
1633 reusable_handles_.VisitObjectPointers(visitor); 1631 reusable_handles_.VisitObjectPointers(visitor);
1634 1632
1635 // Visit the dart api state for all local and persistent handles. 1633 // Visit the dart api state for all local and persistent handles.
1636 if (api_state() != NULL) { 1634 if (api_state() != NULL) {
1637 api_state()->VisitObjectPointers(visitor, visit_prologue_weak_handles); 1635 api_state()->VisitObjectPointers(visitor, visit_prologue_weak_handles);
1638 } 1636 }
(...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after
2349 serialized_message_, serialized_message_len_); 2347 serialized_message_, serialized_message_len_);
2350 } 2348 }
2351 2349
2352 2350
2353 void IsolateSpawnState::Cleanup() { 2351 void IsolateSpawnState::Cleanup() {
2354 SwitchIsolateScope switch_scope(I); 2352 SwitchIsolateScope switch_scope(I);
2355 Dart::ShutdownIsolate(); 2353 Dart::ShutdownIsolate();
2356 } 2354 }
2357 2355
2358 } // namespace dart 2356 } // namespace dart
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/megamorphic_cache_table.h » ('j') | runtime/vm/megamorphic_cache_table.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698