OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 7625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7636 if (!descriptors->HasEnumIndicesCache()) return; | 7636 if (!descriptors->HasEnumIndicesCache()) return; |
7637 FixedArray* enum_indices_cache = descriptors->GetEnumIndicesCache(); | 7637 FixedArray* enum_indices_cache = descriptors->GetEnumIndicesCache(); |
7638 RightTrimFixedArray<FROM_GC>(heap, enum_indices_cache, to_trim); | 7638 RightTrimFixedArray<FROM_GC>(heap, enum_indices_cache, to_trim); |
7639 } | 7639 } |
7640 | 7640 |
7641 | 7641 |
7642 static void TrimDescriptorArray(Heap* heap, | 7642 static void TrimDescriptorArray(Heap* heap, |
7643 Map* map, | 7643 Map* map, |
7644 DescriptorArray* descriptors, | 7644 DescriptorArray* descriptors, |
7645 int number_of_own_descriptors) { | 7645 int number_of_own_descriptors) { |
7646 int number_of_descriptors = descriptors->number_of_descriptors(); | 7646 int number_of_descriptors = descriptors->number_of_descriptors_storage(); |
7647 int to_trim = number_of_descriptors - number_of_own_descriptors; | 7647 int to_trim = number_of_descriptors - number_of_own_descriptors; |
7648 if (to_trim <= 0) return; | 7648 if (to_trim == 0) return; |
7649 | 7649 |
7650 RightTrimFixedArray<FROM_GC>(heap, descriptors, to_trim); | 7650 RightTrimFixedArray<FROM_GC>( |
| 7651 heap, descriptors, to_trim * DescriptorArray::kDescriptorSize); |
7651 descriptors->SetNumberOfDescriptors(number_of_own_descriptors); | 7652 descriptors->SetNumberOfDescriptors(number_of_own_descriptors); |
7652 | 7653 |
7653 if (descriptors->HasEnumCache()) TrimEnumCache(heap, map, descriptors); | 7654 if (descriptors->HasEnumCache()) TrimEnumCache(heap, map, descriptors); |
7654 descriptors->Sort(); | 7655 descriptors->Sort(); |
7655 } | 7656 } |
7656 | 7657 |
7657 | 7658 |
7658 // Clear a possible back pointer in case the transition leads to a dead map. | 7659 // Clear a possible back pointer in case the transition leads to a dead map. |
7659 // Return true in case a back pointer has been cleared and false otherwise. | 7660 // Return true in case a back pointer has been cleared and false otherwise. |
7660 static bool ClearBackPointer(Heap* heap, Map* target) { | 7661 static bool ClearBackPointer(Heap* heap, Map* target) { |
(...skipping 6183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13844 set_year(Smi::FromInt(year), SKIP_WRITE_BARRIER); | 13845 set_year(Smi::FromInt(year), SKIP_WRITE_BARRIER); |
13845 set_month(Smi::FromInt(month), SKIP_WRITE_BARRIER); | 13846 set_month(Smi::FromInt(month), SKIP_WRITE_BARRIER); |
13846 set_day(Smi::FromInt(day), SKIP_WRITE_BARRIER); | 13847 set_day(Smi::FromInt(day), SKIP_WRITE_BARRIER); |
13847 set_weekday(Smi::FromInt(weekday), SKIP_WRITE_BARRIER); | 13848 set_weekday(Smi::FromInt(weekday), SKIP_WRITE_BARRIER); |
13848 set_hour(Smi::FromInt(hour), SKIP_WRITE_BARRIER); | 13849 set_hour(Smi::FromInt(hour), SKIP_WRITE_BARRIER); |
13849 set_min(Smi::FromInt(min), SKIP_WRITE_BARRIER); | 13850 set_min(Smi::FromInt(min), SKIP_WRITE_BARRIER); |
13850 set_sec(Smi::FromInt(sec), SKIP_WRITE_BARRIER); | 13851 set_sec(Smi::FromInt(sec), SKIP_WRITE_BARRIER); |
13851 } | 13852 } |
13852 | 13853 |
13853 } } // namespace v8::internal | 13854 } } // namespace v8::internal |
OLD | NEW |