| 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 |