| Index: src/heap/spaces.cc
|
| diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc
|
| index 4d771227c12644add26ccb7636eae11cb0fa0579..e2373d88d2de868d3b0efca4ed33f6118b70eb2e 100644
|
| --- a/src/heap/spaces.cc
|
| +++ b/src/heap/spaces.cc
|
| @@ -446,7 +446,7 @@ Address MemoryAllocator::ReserveAlignedMemory(size_t size, size_t alignment,
|
| base::VirtualMemory reservation(size, alignment);
|
|
|
| if (!reservation.IsReserved()) return NULL;
|
| - size_.Increment(static_cast<intptr_t>(reservation.size()));
|
| + size_.Increment(reservation.size());
|
| Address base =
|
| RoundUp(static_cast<Address>(reservation.address()), alignment);
|
| controller->TakeControl(&reservation);
|
| @@ -681,8 +681,7 @@ MemoryChunk* MemoryAllocator::AllocateChunk(intptr_t reserve_area_size,
|
| CodePageGuardSize();
|
|
|
| // Check executable memory limit.
|
| - if ((size_executable_.Value() + static_cast<intptr_t>(chunk_size)) >
|
| - capacity_executable_) {
|
| + if ((size_executable_.Value() + chunk_size) > capacity_executable_) {
|
| LOG(isolate_, StringEvent("MemoryAllocator::AllocateRawMemory",
|
| "V8 Executable Allocation capacity exceeded"));
|
| return NULL;
|
| @@ -705,16 +704,16 @@ MemoryChunk* MemoryAllocator::AllocateChunk(intptr_t reserve_area_size,
|
| DCHECK(
|
| IsAligned(reinterpret_cast<intptr_t>(base), MemoryChunk::kAlignment));
|
| if (base == NULL) return NULL;
|
| - size_.Increment(static_cast<intptr_t>(chunk_size));
|
| + size_.Increment(chunk_size);
|
| // Update executable memory size.
|
| - size_executable_.Increment(static_cast<intptr_t>(chunk_size));
|
| + size_executable_.Increment(chunk_size);
|
| } else {
|
| base = AllocateAlignedMemory(chunk_size, commit_size,
|
| MemoryChunk::kAlignment, executable,
|
| &reservation);
|
| if (base == NULL) return NULL;
|
| // Update executable memory size.
|
| - size_executable_.Increment(static_cast<intptr_t>(reservation.size()));
|
| + size_executable_.Increment(reservation.size());
|
| }
|
|
|
| if (Heap::ShouldZapGarbage()) {
|
| @@ -759,9 +758,9 @@ MemoryChunk* MemoryAllocator::AllocateChunk(intptr_t reserve_area_size,
|
| last_chunk_.TakeControl(&reservation);
|
| UncommitBlock(reinterpret_cast<Address>(last_chunk_.address()),
|
| last_chunk_.size());
|
| - size_.Increment(-static_cast<intptr_t>(chunk_size));
|
| + size_.Decrement(chunk_size);
|
| if (executable == EXECUTABLE) {
|
| - size_executable_.Increment(-static_cast<intptr_t>(chunk_size));
|
| + size_executable_.Decrement(chunk_size);
|
| }
|
| CHECK(last_chunk_.IsReserved());
|
| return AllocateChunk(reserve_area_size, commit_area_size, executable,
|
| @@ -837,8 +836,8 @@ void MemoryAllocator::PartialFreeMemory(MemoryChunk* chunk,
|
|
|
| size_t to_free_size = size - (start_free - chunk->address());
|
|
|
| - DCHECK(size_.Value() >= static_cast<intptr_t>(to_free_size));
|
| - size_.Increment(-static_cast<intptr_t>(to_free_size));
|
| + DCHECK(size_.Value() >= to_free_size);
|
| + size_.Decrement(to_free_size);
|
| isolate_->counters()->memory_allocated()->Decrement(
|
| static_cast<int>(to_free_size));
|
| chunk->set_size(size - to_free_size);
|
| @@ -853,20 +852,15 @@ void MemoryAllocator::PreFreeMemory(MemoryChunk* chunk) {
|
| isolate_->heap()->RememberUnmappedPage(reinterpret_cast<Address>(chunk),
|
| chunk->IsEvacuationCandidate());
|
|
|
| - intptr_t size;
|
| base::VirtualMemory* reservation = chunk->reserved_memory();
|
| - if (reservation->IsReserved()) {
|
| - size = static_cast<intptr_t>(reservation->size());
|
| - } else {
|
| - size = static_cast<intptr_t>(chunk->size());
|
| - }
|
| - DCHECK(size_.Value() >= size);
|
| - size_.Increment(-size);
|
| + const size_t size =
|
| + reservation->IsReserved() ? reservation->size() : chunk->size();
|
| + DCHECK_GE(size_.Value(), static_cast<size_t>(size));
|
| + size_.Decrement(size);
|
| isolate_->counters()->memory_allocated()->Decrement(static_cast<int>(size));
|
| -
|
| if (chunk->executable() == EXECUTABLE) {
|
| - DCHECK(size_executable_.Value() >= size);
|
| - size_executable_.Increment(-size);
|
| + DCHECK_GE(size_executable_.Value(), size);
|
| + size_executable_.Decrement(size);
|
| }
|
|
|
| chunk->SetFlag(MemoryChunk::PRE_FREED);
|
| @@ -999,10 +993,9 @@ void MemoryAllocator::ZapBlock(Address start, size_t size) {
|
|
|
| #ifdef DEBUG
|
| void MemoryAllocator::ReportStatistics() {
|
| - intptr_t size = Size();
|
| + size_t size = Size();
|
| float pct = static_cast<float>(capacity_ - size) / capacity_;
|
| - PrintF(" capacity: %" V8PRIdPTR ", used: %" V8PRIdPTR
|
| - ", available: %%%d\n\n",
|
| + PrintF(" capacity: %zu , used: %" V8PRIdPTR ", available: %%%d\n\n",
|
| capacity_, size, static_cast<int>(pct * 100));
|
| }
|
| #endif
|
|
|