OLD | NEW |
---|---|
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
279 // iterating over the current page, finding pointers to new space. If the | 279 // iterating over the current page, finding pointers to new space. If the |
280 // store buffer overflows again we can exempt the page from the store buffer | 280 // store buffer overflows again we can exempt the page from the store buffer |
281 // by rewinding to this point instead of having to search the store buffer. | 281 // by rewinding to this point instead of having to search the store buffer. |
282 Object*** start_of_current_page_; | 282 Object*** start_of_current_page_; |
283 // The current page we are scanning in the store buffer iterator. | 283 // The current page we are scanning in the store buffer iterator. |
284 MemoryChunk* current_page_; | 284 MemoryChunk* current_page_; |
285 }; | 285 }; |
286 | 286 |
287 | 287 |
288 | 288 |
289 // The all static Heap captures the interface to the global object heap. | |
290 // All JavaScript contexts by this process share the same object heap. | |
291 | |
292 #ifdef DEBUG | |
293 class HeapDebugUtils; | |
294 #endif | |
295 | |
296 | 289 |
Michael Starzinger
2012/11/26 10:09:57
Drop the third empty newline.
| |
297 // A queue of objects promoted during scavenge. Each object is accompanied | 290 // A queue of objects promoted during scavenge. Each object is accompanied |
298 // by it's size to avoid dereferencing a map pointer for scanning. | 291 // by it's size to avoid dereferencing a map pointer for scanning. |
299 class PromotionQueue { | 292 class PromotionQueue { |
300 public: | 293 public: |
301 explicit PromotionQueue(Heap* heap) | 294 explicit PromotionQueue(Heap* heap) |
302 : front_(NULL), | 295 : front_(NULL), |
303 rear_(NULL), | 296 rear_(NULL), |
304 limit_(NULL), | 297 limit_(NULL), |
305 emergency_stack_(0), | 298 emergency_stack_(0), |
306 heap_(heap) { } | 299 heap_(heap) { } |
(...skipping 1479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1786 bool allocation_allowed_; | 1779 bool allocation_allowed_; |
1787 | 1780 |
1788 // If the --gc-interval flag is set to a positive value, this | 1781 // If the --gc-interval flag is set to a positive value, this |
1789 // variable holds the value indicating the number of allocations | 1782 // variable holds the value indicating the number of allocations |
1790 // remain until the next failure and garbage collection. | 1783 // remain until the next failure and garbage collection. |
1791 int allocation_timeout_; | 1784 int allocation_timeout_; |
1792 | 1785 |
1793 // Do we expect to be able to handle allocation failure at this | 1786 // Do we expect to be able to handle allocation failure at this |
1794 // time? | 1787 // time? |
1795 bool disallow_allocation_failure_; | 1788 bool disallow_allocation_failure_; |
1796 | 1789 |
Michael Starzinger
2012/11/26 10:09:57
Drop the empty newline.
| |
1797 HeapDebugUtils* debug_utils_; | |
1798 #endif // DEBUG | 1790 #endif // DEBUG |
1799 | 1791 |
1800 // Indicates that the new space should be kept small due to high promotion | 1792 // Indicates that the new space should be kept small due to high promotion |
1801 // rates caused by the mutator allocating a lot of long-lived objects. | 1793 // rates caused by the mutator allocating a lot of long-lived objects. |
1802 bool new_space_high_promotion_mode_active_; | 1794 bool new_space_high_promotion_mode_active_; |
1803 | 1795 |
1804 // Limit that triggers a global GC on the next (normally caused) GC. This | 1796 // Limit that triggers a global GC on the next (normally caused) GC. This |
1805 // is checked when we have already decided to do a GC to help determine | 1797 // is checked when we have already decided to do a GC to help determine |
1806 // which collector to invoke. | 1798 // which collector to invoke. |
1807 intptr_t old_gen_promotion_limit_; | 1799 intptr_t old_gen_promotion_limit_; |
(...skipping 1020 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2828 AssertNoAllocation no_alloc; // i.e. no gc allowed. | 2820 AssertNoAllocation no_alloc; // i.e. no gc allowed. |
2829 | 2821 |
2830 private: | 2822 private: |
2831 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2823 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2832 }; | 2824 }; |
2833 #endif // DEBUG || LIVE_OBJECT_LIST | 2825 #endif // DEBUG || LIVE_OBJECT_LIST |
2834 | 2826 |
2835 } } // namespace v8::internal | 2827 } } // namespace v8::internal |
2836 | 2828 |
2837 #endif // V8_HEAP_H_ | 2829 #endif // V8_HEAP_H_ |
OLD | NEW |