Index: content/browser/browser_io_surface_manager_mac.cc |
diff --git a/content/browser/browser_io_surface_manager_mac.cc b/content/browser/browser_io_surface_manager_mac.cc |
index 519b48c684ad00058f38b6bf4dbcd78b895572f9..2cde1f5d2772ea106f0fb65b7dc9ffa74cbe23f6 100644 |
--- a/content/browser/browser_io_surface_manager_mac.cc |
+++ b/content/browser/browser_io_surface_manager_mac.cc |
@@ -199,23 +199,20 @@ void BrowserIOSurfaceManager::HandleRequest() { |
switch (request.msg.header.msgh_id) { |
case IOSurfaceManagerHostMsg_RegisterIOSurface::ID: |
- if (!HandleRegisterIOSurfaceRequest(request.msg.register_io_surface, |
- &reply.register_io_surface)) { |
- return; |
- } |
+ HandleRegisterIOSurfaceRequest(request.msg.register_io_surface, |
+ &reply.register_io_surface); |
break; |
case IOSurfaceManagerHostMsg_UnregisterIOSurface::ID: |
- HandleUnregisterIOSurfaceRequest(request.msg.unregister_io_surface); |
+ HandleUnregisterIOSurfaceRequest(request.msg.unregister_io_surface, |
+ NULL); |
Avi (use Gerrit)
2015/09/17 15:12:30
nullptr
ccameron
2015/09/17 18:35:05
Done.
|
// Unregister requests are asynchronous and do not require a reply as |
// there is no guarantee for how quickly an IO surface is removed from |
// the IOSurfaceManager instance after it has been deleted by a child |
// process. |
return; |
case IOSurfaceManagerHostMsg_AcquireIOSurface::ID: |
- if (!HandleAcquireIOSurfaceRequest(request.msg.acquire_io_surface, |
- &reply.acquire_io_surface)) { |
- return; |
- } |
+ HandleAcquireIOSurfaceRequest(request.msg.acquire_io_surface, |
+ &reply.acquire_io_surface); |
break; |
default: |
LOG(ERROR) << "Unknown message received!"; |
@@ -230,7 +227,7 @@ void BrowserIOSurfaceManager::HandleRequest() { |
} |
} |
-bool BrowserIOSurfaceManager::HandleRegisterIOSurfaceRequest( |
+void BrowserIOSurfaceManager::HandleRegisterIOSurfaceRequest( |
const IOSurfaceManagerHostMsg_RegisterIOSurface& request, |
IOSurfaceManagerMsg_RegisterIOSurfaceReply* reply) { |
base::AutoLock lock(lock_); |
@@ -241,7 +238,7 @@ bool BrowserIOSurfaceManager::HandleRegisterIOSurfaceRequest( |
token.SetName(request.token_name); |
if (token.IsZero() || token != gpu_process_token_) { |
LOG(ERROR) << "Illegal message from non-GPU process!"; |
- return false; |
+ return; |
reveman
2015/09/17 03:58:22
don't we have to set some of the reply fields in t
ccameron
2015/09/17 18:35:05
This gets called from HandleRequest, which sets th
|
} |
IOSurfaceMapKey key(IOSurfaceId(request.io_surface_id), request.client_id); |
@@ -252,11 +249,11 @@ bool BrowserIOSurfaceManager::HandleRegisterIOSurfaceRequest( |
reply->header.msgh_remote_port = request.header.msgh_remote_port; |
reply->header.msgh_size = sizeof(*reply); |
reply->result = true; |
- return true; |
} |
-bool BrowserIOSurfaceManager::HandleUnregisterIOSurfaceRequest( |
- const IOSurfaceManagerHostMsg_UnregisterIOSurface& request) { |
+void BrowserIOSurfaceManager::HandleUnregisterIOSurfaceRequest( |
+ const IOSurfaceManagerHostMsg_UnregisterIOSurface& request, |
+ bool* result) { |
base::AutoLock lock(lock_); |
IOSurfaceManagerToken token; |
@@ -265,15 +262,18 @@ bool BrowserIOSurfaceManager::HandleUnregisterIOSurfaceRequest( |
token.SetName(request.token_name); |
if (token.IsZero() || token != gpu_process_token_) { |
LOG(ERROR) << "Illegal message from non-GPU process!"; |
- return false; |
+ if (result) |
+ *result = false; |
+ return; |
} |
IOSurfaceMapKey key(IOSurfaceId(request.io_surface_id), request.client_id); |
io_surfaces_.erase(key); |
- return true; |
+ if (result) |
+ *result = true; |
} |
-bool BrowserIOSurfaceManager::HandleAcquireIOSurfaceRequest( |
+void BrowserIOSurfaceManager::HandleAcquireIOSurfaceRequest( |
const IOSurfaceManagerHostMsg_AcquireIOSurface& request, |
IOSurfaceManagerMsg_AcquireIOSurfaceReply* reply) { |
base::AutoLock lock(lock_); |
@@ -285,27 +285,27 @@ bool BrowserIOSurfaceManager::HandleAcquireIOSurfaceRequest( |
auto child_process_id_it = child_process_ids_.find(token); |
if (child_process_id_it == child_process_ids_.end()) { |
LOG(ERROR) << "Illegal message from non-child process!"; |
- return false; |
+ return; |
reveman
2015/09/17 03:58:22
Same here. Don't we have some set some reply field
ccameron
2015/09/17 18:35:05
Done.
|
} |
reply->header.msgh_bits = |
MACH_MSGH_BITS_REMOTE(request.header.msgh_bits) | MACH_MSGH_BITS_COMPLEX; |
reply->header.msgh_remote_port = request.header.msgh_remote_port; |
reply->header.msgh_size = sizeof(*reply); |
+ reply->result = true; |
IOSurfaceMapKey key(IOSurfaceId(request.io_surface_id), |
child_process_id_it->second); |
auto it = io_surfaces_.find(key); |
if (it == io_surfaces_.end()) { |
LOG(ERROR) << "Invalid Id for IOSurface " << request.io_surface_id; |
- return true; |
+ return; |
} |
reply->body.msgh_descriptor_count = 1; |
reply->io_surface_port.name = it->second->get(); |
reply->io_surface_port.disposition = MACH_MSG_TYPE_COPY_SEND; |
reply->io_surface_port.type = MACH_MSG_PORT_DESCRIPTOR; |
- return true; |
} |
} // namespace content |