| 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 #include <map> | 9 #include <map> | 
| 10 | 10 | 
| (...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 771   // An object should be promoted if the object has survived a | 771   // An object should be promoted if the object has survived a | 
| 772   // scavenge operation. | 772   // scavenge operation. | 
| 773   inline bool ShouldBePromoted(Address old_address, int object_size); | 773   inline bool ShouldBePromoted(Address old_address, int object_size); | 
| 774 | 774 | 
| 775   void ClearNormalizedMapCaches(); | 775   void ClearNormalizedMapCaches(); | 
| 776 | 776 | 
| 777   void IncrementDeferredCount(v8::Isolate::UseCounterFeature feature); | 777   void IncrementDeferredCount(v8::Isolate::UseCounterFeature feature); | 
| 778 | 778 | 
| 779   inline bool OldGenerationAllocationLimitReached(); | 779   inline bool OldGenerationAllocationLimitReached(); | 
| 780 | 780 | 
| 781   void QueueMemoryChunkForFree(MemoryChunk* chunk); |  | 
| 782   void FreeQueuedChunks(MemoryChunk* list_head); |  | 
| 783   void FreeQueuedChunks(); |  | 
| 784   void WaitUntilUnmappingOfFreeChunksCompleted(); |  | 
| 785 |  | 
| 786   // Completely clear the Instanceof cache (to stop it keeping objects alive | 781   // Completely clear the Instanceof cache (to stop it keeping objects alive | 
| 787   // around a GC). | 782   // around a GC). | 
| 788   inline void CompletelyClearInstanceofCache(); | 783   inline void CompletelyClearInstanceofCache(); | 
| 789 | 784 | 
| 790   inline uint32_t HashSeed(); | 785   inline uint32_t HashSeed(); | 
| 791 | 786 | 
| 792   inline int NextScriptId(); | 787   inline int NextScriptId(); | 
| 793 | 788 | 
| 794   inline void SetArgumentsAdaptorDeoptPCOffset(int pc_offset); | 789   inline void SetArgumentsAdaptorDeoptPCOffset(int pc_offset); | 
| 795   inline void SetConstructStubDeoptPCOffset(int pc_offset); | 790   inline void SetConstructStubDeoptPCOffset(int pc_offset); | 
| (...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1383   // Report heap statistics. | 1378   // Report heap statistics. | 
| 1384   void ReportHeapStatistics(const char* title); | 1379   void ReportHeapStatistics(const char* title); | 
| 1385   void ReportCodeStatistics(const char* title); | 1380   void ReportCodeStatistics(const char* title); | 
| 1386 #endif | 1381 #endif | 
| 1387 #ifdef ENABLE_SLOW_DCHECKS | 1382 #ifdef ENABLE_SLOW_DCHECKS | 
| 1388   int CountHandlesForObject(Object* object); | 1383   int CountHandlesForObject(Object* object); | 
| 1389 #endif | 1384 #endif | 
| 1390 | 1385 | 
| 1391  private: | 1386  private: | 
| 1392   class PretenuringScope; | 1387   class PretenuringScope; | 
| 1393   class UnmapFreeMemoryTask; |  | 
| 1394 | 1388 | 
| 1395   // External strings table is a place where all external strings are | 1389   // External strings table is a place where all external strings are | 
| 1396   // registered.  We need to keep track of such strings to properly | 1390   // registered.  We need to keep track of such strings to properly | 
| 1397   // finalize them. | 1391   // finalize them. | 
| 1398   class ExternalStringTable { | 1392   class ExternalStringTable { | 
| 1399    public: | 1393    public: | 
| 1400     // Registers an external string. | 1394     // Registers an external string. | 
| 1401     inline void AddString(String* string); | 1395     inline void AddString(String* string); | 
| 1402 | 1396 | 
| 1403     inline void Iterate(ObjectVisitor* v); | 1397     inline void Iterate(ObjectVisitor* v); | 
| (...skipping 797 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2201 | 2195 | 
| 2202   // Currently set GC flags that are respected by all GC components. | 2196   // Currently set GC flags that are respected by all GC components. | 
| 2203   int current_gc_flags_; | 2197   int current_gc_flags_; | 
| 2204 | 2198 | 
| 2205   // Currently set GC callback flags that are used to pass information between | 2199   // Currently set GC callback flags that are used to pass information between | 
| 2206   // the embedder and V8's GC. | 2200   // the embedder and V8's GC. | 
| 2207   GCCallbackFlags current_gc_callback_flags_; | 2201   GCCallbackFlags current_gc_callback_flags_; | 
| 2208 | 2202 | 
| 2209   ExternalStringTable external_string_table_; | 2203   ExternalStringTable external_string_table_; | 
| 2210 | 2204 | 
| 2211   MemoryChunk* chunks_queued_for_free_; |  | 
| 2212 |  | 
| 2213   size_t concurrent_unmapping_tasks_active_; |  | 
| 2214 |  | 
| 2215   base::Semaphore pending_unmapping_tasks_semaphore_; |  | 
| 2216 |  | 
| 2217   base::Mutex relocation_mutex_; | 2205   base::Mutex relocation_mutex_; | 
| 2218 | 2206 | 
| 2219   int gc_callbacks_depth_; | 2207   int gc_callbacks_depth_; | 
| 2220 | 2208 | 
| 2221   bool deserialization_complete_; | 2209   bool deserialization_complete_; | 
| 2222 | 2210 | 
| 2223   StrongRootsList* strong_roots_list_; | 2211   StrongRootsList* strong_roots_list_; | 
| 2224 | 2212 | 
| 2225   ArrayBufferTracker* array_buffer_tracker_; | 2213   ArrayBufferTracker* array_buffer_tracker_; | 
| 2226 | 2214 | 
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2649   friend class LargeObjectSpace; | 2637   friend class LargeObjectSpace; | 
| 2650   friend class NewSpace; | 2638   friend class NewSpace; | 
| 2651   friend class PagedSpace; | 2639   friend class PagedSpace; | 
| 2652   DISALLOW_COPY_AND_ASSIGN(AllocationObserver); | 2640   DISALLOW_COPY_AND_ASSIGN(AllocationObserver); | 
| 2653 }; | 2641 }; | 
| 2654 | 2642 | 
| 2655 }  // namespace internal | 2643 }  // namespace internal | 
| 2656 }  // namespace v8 | 2644 }  // namespace v8 | 
| 2657 | 2645 | 
| 2658 #endif  // V8_HEAP_HEAP_H_ | 2646 #endif  // V8_HEAP_HEAP_H_ | 
| OLD | NEW | 
|---|