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

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

Issue 81333003: Do not eagerly finalize classes in CHA, instead regard unfinalized classes as ’non-existent’ an… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years 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) 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 "lib/mirrors.h" 10 #include "lib/mirrors.h"
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 IsolateSpawnState* state = NULL; 522 IsolateSpawnState* state = NULL;
523 { 523 {
524 MutexLocker ml(isolate->mutex()); 524 MutexLocker ml(isolate->mutex());
525 state = reinterpret_cast<IsolateSpawnState*>(isolate->spawn_data()); 525 state = reinterpret_cast<IsolateSpawnState*>(isolate->spawn_data());
526 isolate->set_spawn_data(0); 526 isolate->set_spawn_data(0);
527 } 527 }
528 { 528 {
529 StartIsolateScope start_scope(isolate); 529 StartIsolateScope start_scope(isolate);
530 StackZone zone(isolate); 530 StackZone zone(isolate);
531 HandleScope handle_scope(isolate); 531 HandleScope handle_scope(isolate);
532 if (!ClassFinalizer::FinalizePendingClasses()) { 532 if (!ClassFinalizer::FinalizeTypeHierarchy()) {
533 // Error is in sticky error already. 533 // Error is in sticky error already.
534 return false; 534 return false;
535 } 535 }
536 536
537 // Set up specific unhandled exception handler. 537 // Set up specific unhandled exception handler.
538 const String& callback_name = String::Handle( 538 const String& callback_name = String::Handle(
539 isolate, String::New(state->exception_callback_name())); 539 isolate, String::New(state->exception_callback_name()));
540 isolate->object_store()-> 540 isolate->object_store()->
541 set_unhandled_exception_handler(callback_name); 541 set_unhandled_exception_handler(callback_name);
542 542
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
1125 return func.raw(); 1125 return func.raw();
1126 } 1126 }
1127 1127
1128 1128
1129 void IsolateSpawnState::Cleanup() { 1129 void IsolateSpawnState::Cleanup() {
1130 SwitchIsolateScope switch_scope(isolate()); 1130 SwitchIsolateScope switch_scope(isolate());
1131 Dart::ShutdownIsolate(); 1131 Dart::ShutdownIsolate();
1132 } 1132 }
1133 1133
1134 } // namespace dart 1134 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698