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

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

Issue 12549007: Stop handling VM messages if the isolate has an uncaught (sticky) (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "include/dart_api.h" 5 #include "include/dart_api.h"
6 6
7 #include "vm/bigint_operations.h" 7 #include "vm/bigint_operations.h"
8 #include "vm/class_finalizer.h" 8 #include "vm/class_finalizer.h"
9 #include "vm/compiler.h" 9 #include "vm/compiler.h"
10 #include "vm/dart.h" 10 #include "vm/dart.h"
(...skipping 988 matching lines...) Expand 10 before | Expand all | Expand 10 after
999 isolate->class_table()->Print(); 999 isolate->class_table()->Print();
1000 } 1000 }
1001 return Api::Success(isolate); 1001 return Api::Success(isolate);
1002 } 1002 }
1003 1003
1004 1004
1005 DART_EXPORT Dart_Handle Dart_HandleMessage() { 1005 DART_EXPORT Dart_Handle Dart_HandleMessage() {
1006 Isolate* isolate = Isolate::Current(); 1006 Isolate* isolate = Isolate::Current();
1007 CHECK_ISOLATE(isolate); 1007 CHECK_ISOLATE(isolate);
1008 if (!isolate->message_handler()->HandleNextMessage()) { 1008 if (!isolate->message_handler()->HandleNextMessage()) {
1009 // TODO(turnidge): Clear sticky error here? 1009 Dart_Handle error =
1010 return Api::NewHandle(isolate, isolate->object_store()->sticky_error()); 1010 Api::NewHandle(isolate, isolate->object_store()->sticky_error());
1011 isolate->object_store()->clear_sticky_error();
1012 return error;
1011 } 1013 }
1012 return Api::Success(isolate); 1014 return Api::Success(isolate);
1013 } 1015 }
1014 1016
1015 1017
1016 DART_EXPORT bool Dart_HasLivePorts() { 1018 DART_EXPORT bool Dart_HasLivePorts() {
1017 Isolate* isolate = Isolate::Current(); 1019 Isolate* isolate = Isolate::Current();
1018 ASSERT(isolate); 1020 ASSERT(isolate);
1019 return isolate->message_handler()->HasLivePorts(); 1021 return isolate->message_handler()->HasLivePorts();
1020 } 1022 }
(...skipping 3663 matching lines...) Expand 10 before | Expand all | Expand 10 after
4684 } 4686 }
4685 { 4687 {
4686 NoGCScope no_gc; 4688 NoGCScope no_gc;
4687 RawObject* raw_obj = obj.raw(); 4689 RawObject* raw_obj = obj.raw();
4688 isolate->heap()->SetPeer(raw_obj, peer); 4690 isolate->heap()->SetPeer(raw_obj, peer);
4689 } 4691 }
4690 return Api::Success(isolate); 4692 return Api::Success(isolate);
4691 } 4693 }
4692 4694
4693 } // namespace dart 4695 } // namespace dart
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698