Index: gpu/command_buffer/service/transfer_buffer_manager.cc |
diff --git a/gpu/command_buffer/service/transfer_buffer_manager.cc b/gpu/command_buffer/service/transfer_buffer_manager.cc |
index f55dfbd8eba0f82a772655279cb27bee18d382cb..6641038149e190a8728ac79ef4650d13a61177ec 100644 |
--- a/gpu/command_buffer/service/transfer_buffer_manager.cc |
+++ b/gpu/command_buffer/service/transfer_buffer_manager.cc |
@@ -25,11 +25,12 @@ TransferBufferManager::TransferBufferManager() |
TransferBufferManager::~TransferBufferManager() { |
for (size_t i = 0; i < registered_objects_.size(); ++i) { |
if (registered_objects_[i].shared_memory) { |
+ DCHECK(shared_memory_bytes_allocated_ >= registered_objects_[i].size); |
shared_memory_bytes_allocated_ -= registered_objects_[i].size; |
delete registered_objects_[i].shared_memory; |
} |
} |
- // TODO(gman): Should we report 0 bytes to TRACE here? |
+ DCHECK(!shared_memory_bytes_allocated_); |
} |
bool TransferBufferManager::Initialize() { |
@@ -42,10 +43,6 @@ int32 TransferBufferManager::CreateTransferBuffer( |
if (!buffer.CreateAnonymous(size)) |
return -1; |
- shared_memory_bytes_allocated_ += size; |
- TRACE_COUNTER_ID1( |
- "CommandBuffer", "SharedMemory", this, shared_memory_bytes_allocated_); |
- |
return RegisterTransferBuffer(&buffer, size, id_request); |
} |
@@ -81,6 +78,10 @@ int32 TransferBufferManager::RegisterTransferBuffer( |
buffer.size = size; |
buffer.shared_memory = duped_shared_memory.release(); |
+ shared_memory_bytes_allocated_ += size; |
+ TRACE_COUNTER_ID1( |
+ "CommandBuffer", "SharedMemory", this, shared_memory_bytes_allocated_); |
+ |
// If caller requested specific id, first try to use id_request. |
if (id_request != -1) { |
int32 cur_size = static_cast<int32>(registered_objects_.size()); |
@@ -120,6 +121,7 @@ void TransferBufferManager::DestroyTransferBuffer(int32 handle) { |
if (static_cast<size_t>(handle) >= registered_objects_.size()) |
return; |
+ DCHECK(shared_memory_bytes_allocated_ >= registered_objects_[handle].size); |
shared_memory_bytes_allocated_ -= registered_objects_[handle].size; |
TRACE_COUNTER_ID1( |
"CommandBuffer", "SharedMemory", this, shared_memory_bytes_allocated_); |