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 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
649 // allocated with AllocateRawMemory. Instead we uncommit the virtual | 649 // allocated with AllocateRawMemory. Instead we uncommit the virtual |
650 // memory. | 650 // memory. |
651 if (InInitialChunk(c.address())) { | 651 if (InInitialChunk(c.address())) { |
652 // TODO(1240712): VirtualMemory::Uncommit has a return value which | 652 // TODO(1240712): VirtualMemory::Uncommit has a return value which |
653 // is ignored here. | 653 // is ignored here. |
654 initial_chunk_->Uncommit(c.address(), c.size()); | 654 initial_chunk_->Uncommit(c.address(), c.size()); |
655 Counters::memory_allocated.Decrement(static_cast<int>(c.size())); | 655 Counters::memory_allocated.Decrement(static_cast<int>(c.size())); |
656 } else { | 656 } else { |
657 LOG(DeleteEvent("PagedChunk", c.address())); | 657 LOG(DeleteEvent("PagedChunk", c.address())); |
658 ObjectSpace space = static_cast<ObjectSpace>(1 << c.owner()->identity()); | 658 ObjectSpace space = static_cast<ObjectSpace>(1 << c.owner()->identity()); |
659 int size = c.size(); | 659 size_t size = c.size(); |
660 FreeRawMemory(c.address(), c.size(), c.executable()); | 660 FreeRawMemory(c.address(), size, c.executable()); |
661 PerformAllocationCallback(space, kAllocationActionFree, size); | 661 PerformAllocationCallback(space, kAllocationActionFree, size); |
662 } | 662 } |
663 c.init(NULL, 0, NULL); | 663 c.init(NULL, 0, NULL); |
664 Push(chunk_id); | 664 Push(chunk_id); |
665 } | 665 } |
666 | 666 |
667 | 667 |
668 Page* MemoryAllocator::FindFirstPageInSameChunk(Page* p) { | 668 Page* MemoryAllocator::FindFirstPageInSameChunk(Page* p) { |
669 int chunk_id = GetChunkId(p); | 669 int chunk_id = GetChunkId(p); |
670 ASSERT(IsValidChunk(chunk_id)); | 670 ASSERT(IsValidChunk(chunk_id)); |
(...skipping 2361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3032 for (HeapObject* obj = obj_it.next(); obj != NULL; obj = obj_it.next()) { | 3032 for (HeapObject* obj = obj_it.next(); obj != NULL; obj = obj_it.next()) { |
3033 if (obj->IsCode()) { | 3033 if (obj->IsCode()) { |
3034 Code* code = Code::cast(obj); | 3034 Code* code = Code::cast(obj); |
3035 code_kind_statistics[code->kind()] += code->Size(); | 3035 code_kind_statistics[code->kind()] += code->Size(); |
3036 } | 3036 } |
3037 } | 3037 } |
3038 } | 3038 } |
3039 #endif // DEBUG | 3039 #endif // DEBUG |
3040 | 3040 |
3041 } } // namespace v8::internal | 3041 } } // namespace v8::internal |
OLD | NEW |