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

Side by Side Diff: runtime/vm/heap.h

Issue 1016503005: Rename NoGCScope -> NoSafepointScope. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 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 | « runtime/vm/hash_table_test.cc ('k') | runtime/vm/heap.cc » ('j') | 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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_HEAP_H_ 5 #ifndef VM_HEAP_H_
6 #define VM_HEAP_H_ 6 #define VM_HEAP_H_
7 7
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/allocation.h" 9 #include "vm/allocation.h"
10 #include "vm/flags.h" 10 #include "vm/flags.h"
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 void IterateNewObjects(ObjectVisitor* visitor) const; 118 void IterateNewObjects(ObjectVisitor* visitor) const;
119 void IterateOldObjects(ObjectVisitor* visitor) const; 119 void IterateOldObjects(ObjectVisitor* visitor) const;
120 120
121 // Find an object by visiting all pointers in the specified heap space, 121 // Find an object by visiting all pointers in the specified heap space,
122 // the 'visitor' is used to determine if an object is found or not. 122 // the 'visitor' is used to determine if an object is found or not.
123 // The 'visitor' function should be set up to return true if the 123 // The 'visitor' function should be set up to return true if the
124 // object is found, traversal through the heap space stops at that 124 // object is found, traversal through the heap space stops at that
125 // point. 125 // point.
126 // The 'visitor' function should return false if the object is not found, 126 // The 'visitor' function should return false if the object is not found,
127 // traversal through the heap space continues. 127 // traversal through the heap space continues.
128 // Returns null object if nothing is found. Must be called within a NoGCScope. 128 // Returns null object if nothing is found. Must be called within a
129 // NoSafepointScope.
129 RawInstructions* FindObjectInCodeSpace(FindObjectVisitor* visitor) const; 130 RawInstructions* FindObjectInCodeSpace(FindObjectVisitor* visitor) const;
130 RawObject* FindOldObject(FindObjectVisitor* visitor) const; 131 RawObject* FindOldObject(FindObjectVisitor* visitor) const;
131 RawObject* FindNewObject(FindObjectVisitor* visitor) const; 132 RawObject* FindNewObject(FindObjectVisitor* visitor) const;
132 RawObject* FindObject(FindObjectVisitor* visitor) const; 133 RawObject* FindObject(FindObjectVisitor* visitor) const;
133 134
134 void CollectGarbage(Space space); 135 void CollectGarbage(Space space);
135 void CollectGarbage(Space space, ApiCallbacks api_callbacks, GCReason reason); 136 void CollectGarbage(Space space, ApiCallbacks api_callbacks, GCReason reason);
136 void CollectAllGarbage(); 137 void CollectAllGarbage();
137 138
138 // Enables growth control on the page space heaps. This should be 139 // Enables growth control on the page space heaps. This should be
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 class GCEvent { 329 class GCEvent {
329 public: 330 public:
330 explicit GCEvent(const Heap::GCStats& stats) 331 explicit GCEvent(const Heap::GCStats& stats)
331 : stats_(stats) {} 332 : stats_(stats) {}
332 void PrintJSON(JSONStream* js) const; 333 void PrintJSON(JSONStream* js) const;
333 private: 334 private:
334 const Heap::GCStats& stats_; 335 const Heap::GCStats& stats_;
335 }; 336 };
336 337
337 338
339 // Within a NoSafepointScope, the thread must not reach any safepoint. Used
340 // around code that manipulates raw object pointers directly without handles.
338 #if defined(DEBUG) 341 #if defined(DEBUG)
339 class NoGCScope : public StackResource { 342 class NoSafepointScope : public StackResource {
340 public: 343 public:
341 NoGCScope(); 344 NoSafepointScope();
342 ~NoGCScope(); 345 ~NoSafepointScope();
343 private: 346 private:
344 DISALLOW_COPY_AND_ASSIGN(NoGCScope); 347 DISALLOW_COPY_AND_ASSIGN(NoSafepointScope);
345 }; 348 };
346 #else // defined(DEBUG) 349 #else // defined(DEBUG)
347 class NoGCScope : public ValueObject { 350 class NoSafepointScope : public ValueObject {
348 public: 351 public:
349 NoGCScope() {} 352 NoSafepointScope() {}
350 private: 353 private:
351 DISALLOW_COPY_AND_ASSIGN(NoGCScope); 354 DISALLOW_COPY_AND_ASSIGN(NoSafepointScope);
352 }; 355 };
353 #endif // defined(DEBUG) 356 #endif // defined(DEBUG)
354 357
355 358
356 class NoHeapGrowthControlScope : public StackResource { 359 class NoHeapGrowthControlScope : public StackResource {
357 public: 360 public:
358 NoHeapGrowthControlScope(); 361 NoHeapGrowthControlScope();
359 ~NoHeapGrowthControlScope(); 362 ~NoHeapGrowthControlScope();
360 private: 363 private:
361 bool current_growth_controller_state_; 364 bool current_growth_controller_state_;
362 DISALLOW_COPY_AND_ASSIGN(NoHeapGrowthControlScope); 365 DISALLOW_COPY_AND_ASSIGN(NoHeapGrowthControlScope);
363 }; 366 };
364 367
365 } // namespace dart 368 } // namespace dart
366 369
367 #endif // VM_HEAP_H_ 370 #endif // VM_HEAP_H_
OLDNEW
« no previous file with comments | « runtime/vm/hash_table_test.cc ('k') | runtime/vm/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698