| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 910 reinterpret_cast<AtomicWord*>(table[index]); | 910 reinterpret_cast<AtomicWord*>(table[index]); |
| 911 if (more_fine_grained_table == kUnusedChunkTableEntry) { | 911 if (more_fine_grained_table == kUnusedChunkTableEntry) { |
| 912 if (create_as_needed == kDontCreateTables) return NULL; | 912 if (create_as_needed == kDontCreateTables) return NULL; |
| 913 int words_needed = 1 << kChunkTableBitsPerLevel; | 913 int words_needed = 1 << kChunkTableBitsPerLevel; |
| 914 if (bit_position == kChunkTableBitsPerLevel + kChunkSizeLog2) { | 914 if (bit_position == kChunkTableBitsPerLevel + kChunkSizeLog2) { |
| 915 words_needed = | 915 words_needed = |
| 916 (1 << kChunkTableBitsPerLevel) * kChunkTableFineGrainedWordsPerEntry; | 916 (1 << kChunkTableBitsPerLevel) * kChunkTableFineGrainedWordsPerEntry; |
| 917 } | 917 } |
| 918 more_fine_grained_table = new AtomicWord[words_needed]; | 918 more_fine_grained_table = new AtomicWord[words_needed]; |
| 919 for (int i = 0; i < words_needed; i++) { | 919 for (int i = 0; i < words_needed; i++) { |
| 920 more_fine_grained_table[i] = NULL; | 920 more_fine_grained_table[i] = kUnusedChunkTableEntry; |
| 921 } | 921 } |
| 922 Release_Store(&table[index], | 922 Release_Store(&table[index], |
| 923 reinterpret_cast<AtomicWord>(more_fine_grained_table)); | 923 reinterpret_cast<AtomicWord>(more_fine_grained_table)); |
| 924 } | 924 } |
| 925 return AllocatedChunksFinder( | 925 return AllocatedChunksFinder( |
| 926 more_fine_grained_table, | 926 more_fine_grained_table, |
| 927 more_fine_grained_address, | 927 more_fine_grained_address, |
| 928 bit_position - kChunkTableBitsPerLevel, | 928 bit_position - kChunkTableBitsPerLevel, |
| 929 create_as_needed); | 929 create_as_needed); |
| 930 } | 930 } |
| (...skipping 2314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3245 for (HeapObject* obj = obj_it.next(); obj != NULL; obj = obj_it.next()) { | 3245 for (HeapObject* obj = obj_it.next(); obj != NULL; obj = obj_it.next()) { |
| 3246 if (obj->IsCode()) { | 3246 if (obj->IsCode()) { |
| 3247 Code* code = Code::cast(obj); | 3247 Code* code = Code::cast(obj); |
| 3248 code_kind_statistics[code->kind()] += code->Size(); | 3248 code_kind_statistics[code->kind()] += code->Size(); |
| 3249 } | 3249 } |
| 3250 } | 3250 } |
| 3251 } | 3251 } |
| 3252 #endif // DEBUG | 3252 #endif // DEBUG |
| 3253 | 3253 |
| 3254 } } // namespace v8::internal | 3254 } } // namespace v8::internal |
| OLD | NEW |