OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_HEAP_HEAP_H_ | 5 #ifndef V8_HEAP_HEAP_H_ |
6 #define V8_HEAP_HEAP_H_ | 6 #define V8_HEAP_HEAP_H_ |
7 | 7 |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 2115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2126 friend class AlwaysAllocateScope; | 2126 friend class AlwaysAllocateScope; |
2127 friend class Deserializer; | 2127 friend class Deserializer; |
2128 friend class Factory; | 2128 friend class Factory; |
2129 friend class GCCallbacksScope; | 2129 friend class GCCallbacksScope; |
2130 friend class GCTracer; | 2130 friend class GCTracer; |
2131 friend class HeapIterator; | 2131 friend class HeapIterator; |
2132 friend class Isolate; | 2132 friend class Isolate; |
2133 friend class MarkCompactCollector; | 2133 friend class MarkCompactCollector; |
2134 friend class MarkCompactMarkingVisitor; | 2134 friend class MarkCompactMarkingVisitor; |
2135 friend class MapCompact; | 2135 friend class MapCompact; |
2136 #ifdef VERIFY_HEAP | |
2137 friend class NoWeakObjectVerificationScope; | |
2138 #endif | |
2139 friend class Page; | 2136 friend class Page; |
2140 | 2137 |
2141 DISALLOW_COPY_AND_ASSIGN(Heap); | 2138 DISALLOW_COPY_AND_ASSIGN(Heap); |
2142 }; | 2139 }; |
2143 | 2140 |
2144 | 2141 |
2145 class HeapStats { | 2142 class HeapStats { |
2146 public: | 2143 public: |
2147 static const int kStartMarker = 0xDECADE00; | 2144 static const int kStartMarker = 0xDECADE00; |
2148 static const int kEndMarker = 0xDECADE01; | 2145 static const int kEndMarker = 0xDECADE01; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2182 explicit inline AlwaysAllocateScope(Isolate* isolate); | 2179 explicit inline AlwaysAllocateScope(Isolate* isolate); |
2183 inline ~AlwaysAllocateScope(); | 2180 inline ~AlwaysAllocateScope(); |
2184 | 2181 |
2185 private: | 2182 private: |
2186 // Implicitly disable artificial allocation failures. | 2183 // Implicitly disable artificial allocation failures. |
2187 Heap* heap_; | 2184 Heap* heap_; |
2188 DisallowAllocationFailure daf_; | 2185 DisallowAllocationFailure daf_; |
2189 }; | 2186 }; |
2190 | 2187 |
2191 | 2188 |
2192 #ifdef VERIFY_HEAP | |
2193 class NoWeakObjectVerificationScope { | |
2194 public: | |
2195 inline NoWeakObjectVerificationScope(); | |
2196 inline ~NoWeakObjectVerificationScope(); | |
2197 }; | |
2198 #endif | |
2199 | |
2200 | |
2201 class GCCallbacksScope { | 2189 class GCCallbacksScope { |
2202 public: | 2190 public: |
2203 explicit inline GCCallbacksScope(Heap* heap); | 2191 explicit inline GCCallbacksScope(Heap* heap); |
2204 inline ~GCCallbacksScope(); | 2192 inline ~GCCallbacksScope(); |
2205 | 2193 |
2206 inline bool CheckReenter(); | 2194 inline bool CheckReenter(); |
2207 | 2195 |
2208 private: | 2196 private: |
2209 Heap* heap_; | 2197 Heap* heap_; |
2210 }; | 2198 }; |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2596 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2584 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
2597 | 2585 |
2598 private: | 2586 private: |
2599 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2587 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2600 }; | 2588 }; |
2601 #endif // DEBUG | 2589 #endif // DEBUG |
2602 } | 2590 } |
2603 } // namespace v8::internal | 2591 } // namespace v8::internal |
2604 | 2592 |
2605 #endif // V8_HEAP_HEAP_H_ | 2593 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |