OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 993 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1004 | 1004 |
1005 | 1005 |
1006 void PromotionQueue::RelocateQueueHead() { | 1006 void PromotionQueue::RelocateQueueHead() { |
1007 ASSERT(emergency_stack_ == NULL); | 1007 ASSERT(emergency_stack_ == NULL); |
1008 | 1008 |
1009 Page* p = Page::FromAllocationTop(reinterpret_cast<Address>(rear_)); | 1009 Page* p = Page::FromAllocationTop(reinterpret_cast<Address>(rear_)); |
1010 intptr_t* head_start = rear_; | 1010 intptr_t* head_start = rear_; |
1011 intptr_t* head_end = | 1011 intptr_t* head_end = |
1012 Min(front_, reinterpret_cast<intptr_t*>(p->body_limit())); | 1012 Min(front_, reinterpret_cast<intptr_t*>(p->body_limit())); |
1013 | 1013 |
1014 int entries_count = (head_end - head_start) / kEntrySizeInWords; | 1014 int entries_count = |
| 1015 static_cast<int>(head_end - head_start) / kEntrySizeInWords; |
1015 | 1016 |
1016 emergency_stack_ = new List<Entry>(2 * entries_count); | 1017 emergency_stack_ = new List<Entry>(2 * entries_count); |
1017 | 1018 |
1018 while (head_start != head_end) { | 1019 while (head_start != head_end) { |
1019 int size = *(head_start++); | 1020 int size = static_cast<int>(*(head_start++)); |
1020 HeapObject* obj = reinterpret_cast<HeapObject*>(*(head_start++)); | 1021 HeapObject* obj = reinterpret_cast<HeapObject*>(*(head_start++)); |
1021 emergency_stack_->Add(Entry(obj, size)); | 1022 emergency_stack_->Add(Entry(obj, size)); |
1022 } | 1023 } |
1023 rear_ = head_end; | 1024 rear_ = head_end; |
1024 } | 1025 } |
1025 | 1026 |
1026 | 1027 |
1027 void Heap::Scavenge() { | 1028 void Heap::Scavenge() { |
1028 #ifdef DEBUG | 1029 #ifdef DEBUG |
1029 if (FLAG_verify_heap) VerifyNonPointerSpacePointers(); | 1030 if (FLAG_verify_heap) VerifyNonPointerSpacePointers(); |
(...skipping 5421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6451 isolate_->heap()->store_buffer()->Compact(); | 6452 isolate_->heap()->store_buffer()->Compact(); |
6452 isolate_->heap()->store_buffer()->Filter(MemoryChunk::ABOUT_TO_BE_FREED); | 6453 isolate_->heap()->store_buffer()->Filter(MemoryChunk::ABOUT_TO_BE_FREED); |
6453 for (chunk = chunks_queued_for_free_; chunk != NULL; chunk = next) { | 6454 for (chunk = chunks_queued_for_free_; chunk != NULL; chunk = next) { |
6454 next = chunk->next_chunk(); | 6455 next = chunk->next_chunk(); |
6455 isolate_->memory_allocator()->Free(chunk); | 6456 isolate_->memory_allocator()->Free(chunk); |
6456 } | 6457 } |
6457 chunks_queued_for_free_ = NULL; | 6458 chunks_queued_for_free_ = NULL; |
6458 } | 6459 } |
6459 | 6460 |
6460 } } // namespace v8::internal | 6461 } } // namespace v8::internal |
OLD | NEW |