| 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 #ifndef VM_HANDLES_H_ | 5 #ifndef VM_HANDLES_H_ |
| 6 #define VM_HANDLES_H_ | 6 #define VM_HANDLES_H_ |
| 7 | 7 |
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
| 9 #include "vm/flags.h" | 9 #include "vm/flags.h" |
| 10 #include "vm/os.h" | 10 #include "vm/os.h" |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 // Visit all blocks that have been added since the last time | 92 // Visit all blocks that have been added since the last time |
| 93 // this method was called. | 93 // this method was called. |
| 94 // Be careful with this, since multiple users of this method could | 94 // Be careful with this, since multiple users of this method could |
| 95 // interfere with eachother. | 95 // interfere with eachother. |
| 96 // Currently only used by GC trace facility. | 96 // Currently only used by GC trace facility. |
| 97 void VisitUnvisitedScopedHandles(ObjectPointerVisitor* visitor); | 97 void VisitUnvisitedScopedHandles(ObjectPointerVisitor* visitor); |
| 98 | 98 |
| 99 // Visit all of the various handles. | 99 // Visit all of the various handles. |
| 100 void Visit(HandleVisitor* visitor); | 100 void Visit(HandleVisitor* visitor); |
| 101 | 101 |
| 102 // Reset the handles so that we can reuse. |
| 103 void Reset(); |
| 104 |
| 102 // Allocates a handle in the current handle scope. This handle is valid only | 105 // Allocates a handle in the current handle scope. This handle is valid only |
| 103 // in the current handle scope and is destroyed when the current handle | 106 // in the current handle scope and is destroyed when the current handle |
| 104 // scope ends. | 107 // scope ends. |
| 105 static uword AllocateHandle(Isolate* isolate); | 108 static uword AllocateHandle(Isolate* isolate); |
| 106 | 109 |
| 107 // Allocates a handle in the current zone. This handle will be destroyed | 110 // Allocates a handle in the current zone. This handle will be destroyed |
| 108 // when the current zone is destroyed. | 111 // when the current zone is destroyed. |
| 109 static uword AllocateZoneHandle(Isolate* isolate); | 112 static uword AllocateZoneHandle(Isolate* isolate); |
| 110 | 113 |
| 111 // Returns true if specified handle is a zone handle. | 114 // Returns true if specified handle is a zone handle. |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 }; | 341 }; |
| 339 #endif // defined(DEBUG) | 342 #endif // defined(DEBUG) |
| 340 | 343 |
| 341 // Macro to start a no handles scope in the code. | 344 // Macro to start a no handles scope in the code. |
| 342 #define NOHANDLESCOPE(isolate) \ | 345 #define NOHANDLESCOPE(isolate) \ |
| 343 dart::NoHandleScope no_vm_internal_handles_scope_(isolate); | 346 dart::NoHandleScope no_vm_internal_handles_scope_(isolate); |
| 344 | 347 |
| 345 } // namespace dart | 348 } // namespace dart |
| 346 | 349 |
| 347 #endif // VM_HANDLES_H_ | 350 #endif // VM_HANDLES_H_ |
| OLD | NEW |