Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Side by Side Diff: ppapi/native_client/src/shared/ppapi_proxy/browser_callback.cc

Issue 10905128: Pepper WebSocket API: Fix memory leak issue (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: done Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« ppapi/cpp/var.cc ('K') | « ppapi/cpp/var.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "native_client/src/shared/ppapi_proxy/browser_callback.h" 5 #include "native_client/src/shared/ppapi_proxy/browser_callback.h"
6 6
7 #include <new> 7 #include <new>
8 8
9 #include "native_client/src/include/nacl_macros.h" 9 #include "native_client/src/include/nacl_macros.h"
10 #include "native_client/src/include/nacl_scoped_ptr.h" 10 #include "native_client/src/include/nacl_scoped_ptr.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 82
83 nacl_abi_size_t read_buffer_size = 0; 83 nacl_abi_size_t read_buffer_size = 0;
84 CheckResultFunc check_result_func = remote_callback->check_result_func; 84 CheckResultFunc check_result_func = remote_callback->check_result_func;
85 GetReadSizeFunc get_size_read_func = remote_callback->get_size_read_func; 85 GetReadSizeFunc get_size_read_func = remote_callback->get_size_read_func;
86 if ((*check_result_func)(result) && remote_callback->read_buffer != NULL) 86 if ((*check_result_func)(result) && remote_callback->read_buffer != NULL)
87 read_buffer_size = (*get_size_read_func)(result); 87 read_buffer_size = (*get_size_read_func)(result);
88 if (remote_callback->read_var.type != PP_VARTYPE_NULL) { 88 if (remote_callback->read_var.type != PP_VARTYPE_NULL) {
89 read_buffer_size = kMaxReturnVarSize; 89 read_buffer_size = kMaxReturnVarSize;
90 read_buffer.reset( 90 read_buffer.reset(
91 Serialize(&remote_callback->read_var, 1, &read_buffer_size)); 91 Serialize(&remote_callback->read_var, 1, &read_buffer_size));
92 PPBVarInterface()->Release(remote_callback->read_var);
Takashi Toyoshima 2012/09/07 17:18:27 This is a renderer process side memory leak.
dmichael (off chromium) 2012/09/07 18:36:58 Nice catch! I have automatic checking for the plu
92 } 93 }
93 94
94 NaClSrpcError srpc_result = 95 NaClSrpcError srpc_result =
95 CompletionCallbackRpcClient::RunCompletionCallback( 96 CompletionCallbackRpcClient::RunCompletionCallback(
96 remote_callback->srpc_channel, 97 remote_callback->srpc_channel,
97 remote_callback->callback_id, 98 remote_callback->callback_id,
98 result, 99 result,
99 read_buffer_size, 100 read_buffer_size,
100 read_buffer.get()); 101 read_buffer.get());
101 DebugPrintf("RunRemoteCallback: %s\n", 102 DebugPrintf("RunRemoteCallback: %s\n",
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 return MakeRemoteCompletionCallback(srpc_channel, callback_id, 0, NULL); 176 return MakeRemoteCompletionCallback(srpc_channel, callback_id, 0, NULL);
176 } 177 }
177 178
178 void DeleteRemoteCallbackInfo(struct PP_CompletionCallback callback) { 179 void DeleteRemoteCallbackInfo(struct PP_CompletionCallback callback) {
179 nacl::scoped_ptr<RemoteCallbackInfo> remote_callback( 180 nacl::scoped_ptr<RemoteCallbackInfo> remote_callback(
180 reinterpret_cast<RemoteCallbackInfo*>(callback.user_data)); 181 reinterpret_cast<RemoteCallbackInfo*>(callback.user_data));
181 nacl::scoped_array<char> read_buffer(remote_callback->read_buffer); 182 nacl::scoped_array<char> read_buffer(remote_callback->read_buffer);
182 } 183 }
183 184
184 } // namespace ppapi_proxy 185 } // namespace ppapi_proxy
OLDNEW
« ppapi/cpp/var.cc ('K') | « ppapi/cpp/var.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698