| 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 2625 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2636   }; | 2636   }; | 
| 2637 | 2637 | 
| 2638   Key keys_[kLength]; | 2638   Key keys_[kLength]; | 
| 2639   int results_[kLength]; | 2639   int results_[kLength]; | 
| 2640 | 2640 | 
| 2641   friend class Isolate; | 2641   friend class Isolate; | 
| 2642   DISALLOW_COPY_AND_ASSIGN(DescriptorLookupCache); | 2642   DISALLOW_COPY_AND_ASSIGN(DescriptorLookupCache); | 
| 2643 }; | 2643 }; | 
| 2644 | 2644 | 
| 2645 | 2645 | 
| 2646 class RegExpResultsCache { |  | 
| 2647  public: |  | 
| 2648   enum ResultsCacheType { REGEXP_MULTIPLE_INDICES, STRING_SPLIT_SUBSTRINGS }; |  | 
| 2649 |  | 
| 2650   // Attempt to retrieve a cached result.  On failure, 0 is returned as a Smi. |  | 
| 2651   // On success, the returned result is guaranteed to be a COW-array. |  | 
| 2652   static Object* Lookup(Heap* heap, String* key_string, Object* key_pattern, |  | 
| 2653                         ResultsCacheType type); |  | 
| 2654   // Attempt to add value_array to the cache specified by type.  On success, |  | 
| 2655   // value_array is turned into a COW-array. |  | 
| 2656   static void Enter(Isolate* isolate, Handle<String> key_string, |  | 
| 2657                     Handle<Object> key_pattern, Handle<FixedArray> value_array, |  | 
| 2658                     ResultsCacheType type); |  | 
| 2659   static void Clear(FixedArray* cache); |  | 
| 2660   static const int kRegExpResultsCacheSize = 0x100; |  | 
| 2661 |  | 
| 2662  private: |  | 
| 2663   static const int kArrayEntriesPerCacheEntry = 4; |  | 
| 2664   static const int kStringOffset = 0; |  | 
| 2665   static const int kPatternOffset = 1; |  | 
| 2666   static const int kArrayOffset = 2; |  | 
| 2667 }; |  | 
| 2668 |  | 
| 2669 |  | 
| 2670 // Abstract base class for checking whether a weak object should be retained. | 2646 // Abstract base class for checking whether a weak object should be retained. | 
| 2671 class WeakObjectRetainer { | 2647 class WeakObjectRetainer { | 
| 2672  public: | 2648  public: | 
| 2673   virtual ~WeakObjectRetainer() {} | 2649   virtual ~WeakObjectRetainer() {} | 
| 2674 | 2650 | 
| 2675   // Return whether this object should be retained. If NULL is returned the | 2651   // Return whether this object should be retained. If NULL is returned the | 
| 2676   // object has no references. Otherwise the address of the retained object | 2652   // object has no references. Otherwise the address of the retained object | 
| 2677   // should be returned as in some GC situations the object has been moved. | 2653   // should be returned as in some GC situations the object has been moved. | 
| 2678   virtual Object* RetainAs(Object* object) = 0; | 2654   virtual Object* RetainAs(Object* object) = 0; | 
| 2679 }; | 2655 }; | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2733   DisallowHeapAllocation no_allocation;  // i.e. no gc allowed. | 2709   DisallowHeapAllocation no_allocation;  // i.e. no gc allowed. | 
| 2734 | 2710 | 
| 2735  private: | 2711  private: | 
| 2736   DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2712   DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 
| 2737 }; | 2713 }; | 
| 2738 #endif  // DEBUG | 2714 #endif  // DEBUG | 
| 2739 } | 2715 } | 
| 2740 }  // namespace v8::internal | 2716 }  // namespace v8::internal | 
| 2741 | 2717 | 
| 2742 #endif  // V8_HEAP_HEAP_H_ | 2718 #endif  // V8_HEAP_HEAP_H_ | 
| OLD | NEW | 
|---|