| OLD | NEW | 
|   1 // Copyright 2015 the V8 project authors. All rights reserved. |   1 // Copyright 2015 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_PROFILER_STRINGS_STORAGE_H_ |   5 #ifndef V8_PROFILER_STRINGS_STORAGE_H_ | 
|   6 #define V8_PROFILER_STRINGS_STORAGE_H_ |   6 #define V8_PROFILER_STRINGS_STORAGE_H_ | 
|   7  |   7  | 
|   8 #include "src/allocation.h" |   8 #include "src/allocation.h" | 
|   9 #include "src/base/compiler-specific.h" |  | 
|  10 #include "src/hashmap.h" |   9 #include "src/hashmap.h" | 
|  11  |  10  | 
|  12 namespace v8 { |  11 namespace v8 { | 
|  13 namespace internal { |  12 namespace internal { | 
|  14  |  13  | 
|  15 // Provides a storage of strings allocated in C++ heap, to hold them |  14 // Provides a storage of strings allocated in C++ heap, to hold them | 
|  16 // forever, even if they disappear from JS heap or external storage. |  15 // forever, even if they disappear from JS heap or external storage. | 
|  17 class StringsStorage { |  16 class StringsStorage { | 
|  18  public: |  17  public: | 
|  19   explicit StringsStorage(Heap* heap); |  18   explicit StringsStorage(Heap* heap); | 
|  20   ~StringsStorage(); |  19   ~StringsStorage(); | 
|  21  |  20  | 
|  22   const char* GetCopy(const char* src); |  21   const char* GetCopy(const char* src); | 
|  23   PRINTF_FORMAT(2, 3) const char* GetFormatted(const char* format, ...); |  22   const char* GetFormatted(const char* format, ...); | 
|  24   PRINTF_FORMAT(2, 0) |  | 
|  25   const char* GetVFormatted(const char* format, va_list args); |  23   const char* GetVFormatted(const char* format, va_list args); | 
|  26   const char* GetName(Name* name); |  24   const char* GetName(Name* name); | 
|  27   const char* GetName(int index); |  25   const char* GetName(int index); | 
|  28   const char* GetFunctionName(Name* name); |  26   const char* GetFunctionName(Name* name); | 
|  29   const char* GetFunctionName(const char* name); |  27   const char* GetFunctionName(const char* name); | 
|  30   size_t GetUsedMemorySize() const; |  28   size_t GetUsedMemorySize() const; | 
|  31  |  29  | 
|  32  private: |  30  private: | 
|  33   static const int kMaxNameSize = 1024; |  31   static const int kMaxNameSize = 1024; | 
|  34  |  32  | 
|  35   static bool StringsMatch(void* key1, void* key2); |  33   static bool StringsMatch(void* key1, void* key2); | 
|  36   const char* AddOrDisposeString(char* str, int len); |  34   const char* AddOrDisposeString(char* str, int len); | 
|  37   HashMap::Entry* GetEntry(const char* str, int len); |  35   HashMap::Entry* GetEntry(const char* str, int len); | 
|  38  |  36  | 
|  39   uint32_t hash_seed_; |  37   uint32_t hash_seed_; | 
|  40   HashMap names_; |  38   HashMap names_; | 
|  41  |  39  | 
|  42   DISALLOW_COPY_AND_ASSIGN(StringsStorage); |  40   DISALLOW_COPY_AND_ASSIGN(StringsStorage); | 
|  43 }; |  41 }; | 
|  44 }  // namespace internal |  42 }  // namespace internal | 
|  45 }  // namespace v8 |  43 }  // namespace v8 | 
|  46  |  44  | 
|  47 #endif  // V8_PROFILER_STRINGS_STORAGE_H_ |  45 #endif  // V8_PROFILER_STRINGS_STORAGE_H_ | 
| OLD | NEW |