Chromium Code Reviews| Index: src/heap.h | 
| diff --git a/src/heap.h b/src/heap.h | 
| index 08c91a41d2a755e41f4ad33c8025ec34c0235380..f12610f0eb4cf4a5474724783d04556ab4261554 100644 | 
| --- a/src/heap.h | 
| +++ b/src/heap.h | 
| @@ -1600,10 +1600,23 @@ class Heap { | 
| global_ic_age_ = (global_ic_age_ + 1) & SharedFunctionInfo::ICAgeBits::kMax; | 
| } | 
| - void RecordObjectStats(InstanceType type, size_t size) { | 
| + enum { | 
| 
 
Michael Starzinger
2012/07/17 10:48:16
Can we have a short comment above this enum descri
 
danno
2012/07/17 11:57:10
Done.
 
 | 
| + FIRST_CODE_KIND_SUB_TYPE = LAST_TYPE + 1, | 
| + OBJECT_STATS_COUNT = FIRST_CODE_KIND_SUB_TYPE + Code::LAST_CODE_KIND + 1 | 
| + }; | 
| + | 
| + void RecordObjectStats(InstanceType type, int sub_type, size_t size) { | 
| ASSERT(type <= LAST_TYPE); | 
| - object_counts_[type]++; | 
| - object_sizes_[type] += size; | 
| + if (sub_type < 0) { | 
| + object_counts_[type]++; | 
| + object_sizes_[type] += size; | 
| + } else { | 
| + if (type == CODE_TYPE) { | 
| + ASSERT(sub_type <= Code::LAST_CODE_KIND); | 
| + object_counts_[FIRST_CODE_KIND_SUB_TYPE + sub_type]++; | 
| + object_sizes_[FIRST_CODE_KIND_SUB_TYPE + sub_type] += size; | 
| + } | 
| + } | 
| } | 
| void CheckpointObjectStats(); | 
| @@ -2008,10 +2021,10 @@ class Heap { | 
| static const int kInitialNumberStringCacheSize = 256; | 
| // Object counts and used memory by InstanceType | 
| - size_t object_counts_[LAST_TYPE + 1]; | 
| - size_t object_counts_last_time_[LAST_TYPE + 1]; | 
| - size_t object_sizes_[LAST_TYPE + 1]; | 
| - size_t object_sizes_last_time_[LAST_TYPE + 1]; | 
| + size_t object_counts_[OBJECT_STATS_COUNT]; | 
| + size_t object_counts_last_time_[OBJECT_STATS_COUNT]; | 
| + size_t object_sizes_[OBJECT_STATS_COUNT]; | 
| + size_t object_sizes_last_time_[OBJECT_STATS_COUNT]; | 
| // Maximum GC pause. | 
| int max_gc_pause_; |