OLD | NEW |
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/isolate.h" | 5 #include "vm/isolate.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 | 8 |
9 #include "vm/assert.h" | 9 #include "vm/assert.h" |
10 #include "vm/bigint_store.h" | 10 #include "vm/bigint_store.h" |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 void Isolate::StandardRunLoop() { | 235 void Isolate::StandardRunLoop() { |
236 ASSERT(long_jump_base() != NULL); | 236 ASSERT(long_jump_base() != NULL); |
237 ASSERT(post_message_callback() == &StandardPostMessageCallback); | 237 ASSERT(post_message_callback() == &StandardPostMessageCallback); |
238 ASSERT(close_port_callback() == &StandardClosePortCallback); | 238 ASSERT(close_port_callback() == &StandardClosePortCallback); |
239 | 239 |
240 while (active_ports() > 0) { | 240 while (active_ports() > 0) { |
241 Zone zone; | 241 Zone zone; |
242 HandleScope handle_scope; | 242 HandleScope handle_scope; |
243 | 243 |
244 PortMessage* message = message_queue()->Dequeue(0); | 244 PortMessage* message = message_queue()->Dequeue(0); |
245 ASSERT(message != NULL); | 245 if (message != NULL) { |
246 Dart_HandleMessage( | 246 Dart_HandleMessage( |
247 message->dest_port(), message->reply_port(), message->data()); | 247 message->dest_port(), message->reply_port(), message->data()); |
248 delete message; | 248 delete message; |
| 249 } |
249 } | 250 } |
250 } | 251 } |
251 | 252 |
252 | 253 |
253 void Isolate::VisitObjectPointers(ObjectPointerVisitor* visitor, | 254 void Isolate::VisitObjectPointers(ObjectPointerVisitor* visitor, |
254 bool validate_frames) { | 255 bool validate_frames) { |
255 ASSERT(visitor != NULL); | 256 ASSERT(visitor != NULL); |
256 | 257 |
257 // Visit objects in the object store. | 258 // Visit objects in the object store. |
258 object_store()->VisitObjectPointers(visitor); | 259 object_store()->VisitObjectPointers(visitor); |
(...skipping 20 matching lines...) Expand all Loading... |
279 // Visit all objects in the code index table. | 280 // Visit all objects in the code index table. |
280 if (code_index_table() != NULL) { | 281 if (code_index_table() != NULL) { |
281 code_index_table()->VisitObjectPointers(visitor); | 282 code_index_table()->VisitObjectPointers(visitor); |
282 } | 283 } |
283 | 284 |
284 // Visit the top context which is stored in the isolate. | 285 // Visit the top context which is stored in the isolate. |
285 visitor->VisitPointer(reinterpret_cast<RawObject**>(&top_context_)); | 286 visitor->VisitPointer(reinterpret_cast<RawObject**>(&top_context_)); |
286 } | 287 } |
287 | 288 |
288 } // namespace dart | 289 } // namespace dart |
OLD | NEW |