Index: gpu/ipc/client/command_buffer_proxy_impl.cc |
diff --git a/gpu/ipc/client/command_buffer_proxy_impl.cc b/gpu/ipc/client/command_buffer_proxy_impl.cc |
index 447697d0f9d1e12998bbd8279443b23967474230..a04ae4c66df4c1e97e45a19f255adb664ee17b74 100644 |
--- a/gpu/ipc/client/command_buffer_proxy_impl.cc |
+++ b/gpu/ipc/client/command_buffer_proxy_impl.cc |
@@ -518,6 +518,9 @@ void CommandBufferProxyImpl::DestroyImage(int32_t id) { |
auto it = image_gmb_ids_map_.find(id); |
if (it != image_gmb_ids_map_.end()) |
image_gmb_ids_map_.erase(it); |
+ auto it2 = image_gmb_map_.find(id); |
+ if (it2 != image_gmb_map_.end()) |
+ image_gmb_map_.erase(it2); |
Send(new GpuCommandBufferMsg_DestroyImage(route_id_, id)); |
} |
@@ -535,7 +538,11 @@ int32_t CommandBufferProxyImpl::CreateGpuMemoryBufferImage( |
if (!buffer) |
return -1; |
- return CreateImage(buffer->AsClientBuffer(), width, height, internal_format); |
+ int32_t result = |
+ CreateImage(buffer->AsClientBuffer(), width, height, internal_format); |
+ if (result != -1) |
+ image_gmb_map_[result] = std::move(buffer); |
+ return result; |
} |
int32_t CommandBufferProxyImpl::GetImageGpuMemoryBufferId(unsigned image_id) { |