Index: ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc |
diff --git a/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc b/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc |
index c919bf29e998b7510985dc22a7c3d38a16811476..f057da602e4321c5ebf6fdb1130c90f71cca5713 100644 |
--- a/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc |
+++ b/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc |
@@ -34,30 +34,28 @@ PPB_TCPServerSocket_Shared::AsPPB_TCPServerSocket_Private_API() { |
return this; |
} |
-int32_t PPB_TCPServerSocket_Shared::Listen(const PP_NetAddress_Private* addr, |
- int32_t backlog, |
- PP_CompletionCallback callback) { |
+int32_t PPB_TCPServerSocket_Shared::Listen( |
+ const PP_NetAddress_Private* addr, |
+ int32_t backlog, |
+ scoped_refptr<TrackedCallback> callback) { |
if (!addr) |
return PP_ERROR_BADARGUMENT; |
- if (!callback.func) |
- return PP_ERROR_BLOCKS_MAIN_THREAD; |
if (state_ != BEFORE_LISTENING) |
return PP_ERROR_FAILED; |
if (TrackedCallback::IsPending(listen_callback_)) |
return PP_ERROR_INPROGRESS; // Can only have one pending request. |
- listen_callback_ = new TrackedCallback(this, callback); |
+ listen_callback_ = callback; |
// Send the request, the browser will call us back via ListenACK |
SendListen(*addr, backlog); |
return PP_OK_COMPLETIONPENDING; |
} |
-int32_t PPB_TCPServerSocket_Shared::Accept(PP_Resource* tcp_socket, |
- PP_CompletionCallback callback) { |
+int32_t PPB_TCPServerSocket_Shared::Accept( |
+ PP_Resource* tcp_socket, |
+ scoped_refptr<TrackedCallback> callback) { |
if (!tcp_socket) |
return PP_ERROR_BADARGUMENT; |
- if (!callback.func) |
- return PP_ERROR_BLOCKS_MAIN_THREAD; |
if (state_ != LISTENING) |
return PP_ERROR_FAILED; |
@@ -65,7 +63,7 @@ int32_t PPB_TCPServerSocket_Shared::Accept(PP_Resource* tcp_socket, |
return PP_ERROR_INPROGRESS; |
tcp_socket_buffer_ = tcp_socket; |
- accept_callback_ = new TrackedCallback(this, callback); |
+ accept_callback_ = callback; |
SendAccept(); |
return PP_OK_COMPLETIONPENDING; |