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 |