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

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

Issue 1168933002: Fixes crashes in VM isolate shutdown. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Add asserts Created 5 years, 6 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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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/dart_entry.h" 5 #include "vm/dart_entry.h"
6 6
7 #include "vm/class_finalizer.h" 7 #include "vm/class_finalizer.h"
8 #include "vm/code_generator.h" 8 #include "vm/code_generator.h"
9 #include "vm/compiler.h" 9 #include "vm/compiler.h"
10 #include "vm/debugger.h" 10 #include "vm/debugger.h"
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 class_name, 484 class_name,
485 function_name, 485 function_name,
486 kNumArguments, 486 kNumArguments,
487 Object::empty_array()); 487 Object::empty_array());
488 ASSERT(!function.IsNull()); 488 ASSERT(!function.IsNull());
489 isolate->object_store()->set_handle_message_function(function); 489 isolate->object_store()->set_handle_message_function(function);
490 } 490 }
491 const Array& args = Array::Handle(isolate, Array::New(kNumArguments)); 491 const Array& args = Array::Handle(isolate, Array::New(kNumArguments));
492 args.SetAt(0, handler); 492 args.SetAt(0, handler);
493 args.SetAt(1, message); 493 args.SetAt(1, message);
494 ASSERT(isolate->debugger() != NULL);
494 if (isolate->debugger()->IsStepping()) { 495 if (isolate->debugger()->IsStepping()) {
495 // If the isolate is being debugged and the debugger was stepping 496 // If the isolate is being debugged and the debugger was stepping
496 // through code, enable single stepping so debugger will stop 497 // through code, enable single stepping so debugger will stop
497 // at the first location the user is interested in. 498 // at the first location the user is interested in.
498 isolate->debugger()->SetSingleStep(); 499 isolate->debugger()->SetSingleStep();
499 } 500 }
500 const Object& result = Object::Handle(isolate, 501 const Object& result = Object::Handle(isolate,
501 DartEntry::InvokeFunction(function, args)); 502 DartEntry::InvokeFunction(function, args));
502 ASSERT(result.IsNull() || result.IsError()); 503 ASSERT(result.IsNull() || result.IsError());
503 return result.raw(); 504 return result.raw();
(...skipping 14 matching lines...) Expand all
518 const Array& args = Array::Handle(Array::New(kNumArguments)); 519 const Array& args = Array::Handle(Array::New(kNumArguments));
519 args.SetAt(0, map); 520 args.SetAt(0, map);
520 args.SetAt(1, key); 521 args.SetAt(1, key);
521 args.SetAt(2, value); 522 args.SetAt(2, value);
522 const Object& result = Object::Handle(DartEntry::InvokeFunction(function, 523 const Object& result = Object::Handle(DartEntry::InvokeFunction(function,
523 args)); 524 args));
524 return result.raw(); 525 return result.raw();
525 } 526 }
526 527
527 } // namespace dart 528 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698