diff options
Diffstat (limited to 'chromium/gpu/command_buffer/client/mapped_memory.cc')
-rw-r--r-- | chromium/gpu/command_buffer/client/mapped_memory.cc | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/chromium/gpu/command_buffer/client/mapped_memory.cc b/chromium/gpu/command_buffer/client/mapped_memory.cc index 15584aaaf07..7166733c51c 100644 --- a/chromium/gpu/command_buffer/client/mapped_memory.cc +++ b/chromium/gpu/command_buffer/client/mapped_memory.cc @@ -13,17 +13,22 @@ namespace gpu { -MemoryChunk::MemoryChunk( - int32 shm_id, gpu::Buffer shm, CommandBufferHelper* helper) +MemoryChunk::MemoryChunk(int32 shm_id, + scoped_refptr<gpu::Buffer> shm, + CommandBufferHelper* helper, + const base::Closure& poll_callback) : shm_id_(shm_id), shm_(shm), - allocator_(shm.size, helper, shm.ptr) { -} + allocator_(shm->size(), helper, poll_callback, shm->memory()) {} + +MemoryChunk::~MemoryChunk() {} MappedMemoryManager::MappedMemoryManager(CommandBufferHelper* helper, + const base::Closure& poll_callback, size_t unused_memory_reclaim_limit) : chunk_size_multiple_(1), helper_(helper), + poll_callback_(poll_callback), allocated_memory_(0), max_free_bytes_(unused_memory_reclaim_limit) { } @@ -82,10 +87,12 @@ void* MappedMemoryManager::Alloc( ((size + chunk_size_multiple_ - 1) / chunk_size_multiple_) * chunk_size_multiple_; int32 id = -1; - gpu::Buffer shm = cmd_buf->CreateTransferBuffer(chunk_size, &id); + scoped_refptr<gpu::Buffer> shm = + cmd_buf->CreateTransferBuffer(chunk_size, &id); if (id < 0) return NULL; - MemoryChunk* mc = new MemoryChunk(id, shm, helper_); + DCHECK(shm); + MemoryChunk* mc = new MemoryChunk(id, shm, helper_, poll_callback_); allocated_memory_ += mc->GetSize(); chunks_.push_back(mc); void* mem = mc->Alloc(size); |