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

Side by Side Diff: mojo/android/system/core_impl.cc

Issue 1308363003: Revert of jni_generator: Make all object-returning natives return ScopedJavaLocalRef. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « content/shell/browser/shell_mojo_test_utils_android.cc ('k') | net/android/gurl_utils.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "mojo/android/system/core_impl.h" 5 #include "mojo/android/system/core_impl.h"
6 6
7 #include "base/android/base_jni_registrar.h" 7 #include "base/android/base_jni_registrar.h"
8 #include "base/android/jni_android.h" 8 #include "base/android/jni_android.h"
9 #include "base/android/jni_registrar.h" 9 #include "base/android/jni_registrar.h"
10 #include "base/android/library_loader/library_loader_hooks.h" 10 #include "base/android/library_loader/library_loader_hooks.h"
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 reinterpret_cast<const MojoHandleSignals*>(buffer_start + 4 * nb_handles); 81 reinterpret_cast<const MojoHandleSignals*>(buffer_start + 4 * nb_handles);
82 MojoHandleSignalsState* states_start = 82 MojoHandleSignalsState* states_start =
83 reinterpret_cast<MojoHandleSignalsState*>(buffer_start + 8 * nb_handles); 83 reinterpret_cast<MojoHandleSignalsState*>(buffer_start + 8 * nb_handles);
84 uint32_t* result_index = 84 uint32_t* result_index =
85 reinterpret_cast<uint32_t*>(buffer_start + 16 * nb_handles); 85 reinterpret_cast<uint32_t*>(buffer_start + 16 * nb_handles);
86 *result_index = static_cast<uint32_t>(-1); 86 *result_index = static_cast<uint32_t>(-1);
87 return MojoWaitMany(handle_start, signals_start, nb_handles, deadline, 87 return MojoWaitMany(handle_start, signals_start, nb_handles, deadline,
88 result_index, states_start); 88 result_index, states_start);
89 } 89 }
90 90
91 static ScopedJavaLocalRef<jobject> CreateMessagePipe(JNIEnv* env, 91 static jobject CreateMessagePipe(JNIEnv* env,
92 jobject jcaller, 92 jobject jcaller,
93 jobject options_buffer) { 93 jobject options_buffer) {
94 const MojoCreateMessagePipeOptions* options = NULL; 94 const MojoCreateMessagePipeOptions* options = NULL;
95 if (options_buffer) { 95 if (options_buffer) {
96 const void* buffer_start = env->GetDirectBufferAddress(options_buffer); 96 const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
97 DCHECK(buffer_start); 97 DCHECK(buffer_start);
98 DCHECK_EQ(reinterpret_cast<const uintptr_t>(buffer_start) % 8, 0u); 98 DCHECK_EQ(reinterpret_cast<const uintptr_t>(buffer_start) % 8, 0u);
99 const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer); 99 const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer);
100 DCHECK_EQ(buffer_size, sizeof(MojoCreateMessagePipeOptions)); 100 DCHECK_EQ(buffer_size, sizeof(MojoCreateMessagePipeOptions));
101 options = static_cast<const MojoCreateMessagePipeOptions*>(buffer_start); 101 options = static_cast<const MojoCreateMessagePipeOptions*>(buffer_start);
102 DCHECK_EQ(options->struct_size, buffer_size); 102 DCHECK_EQ(options->struct_size, buffer_size);
103 } 103 }
104 MojoHandle handle1; 104 MojoHandle handle1;
105 MojoHandle handle2; 105 MojoHandle handle2;
106 MojoResult result = MojoCreateMessagePipe(options, &handle1, &handle2); 106 MojoResult result = MojoCreateMessagePipe(options, &handle1, &handle2);
107 return Java_CoreImpl_newNativeCreationResult(env, result, handle1, handle2); 107 return Java_CoreImpl_newNativeCreationResult(env, result, handle1, handle2)
108 .Release();
108 } 109 }
109 110
110 static ScopedJavaLocalRef<jobject> CreateDataPipe(JNIEnv* env, 111 static jobject CreateDataPipe(JNIEnv* env,
111 jobject jcaller, 112 jobject jcaller,
112 jobject options_buffer) { 113 jobject options_buffer) {
113 const MojoCreateDataPipeOptions* options = NULL; 114 const MojoCreateDataPipeOptions* options = NULL;
114 if (options_buffer) { 115 if (options_buffer) {
115 const void* buffer_start = env->GetDirectBufferAddress(options_buffer); 116 const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
116 DCHECK(buffer_start); 117 DCHECK(buffer_start);
117 DCHECK_EQ(reinterpret_cast<const uintptr_t>(buffer_start) % 8, 0u); 118 DCHECK_EQ(reinterpret_cast<const uintptr_t>(buffer_start) % 8, 0u);
118 const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer); 119 const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer);
119 DCHECK_EQ(buffer_size, sizeof(MojoCreateDataPipeOptions)); 120 DCHECK_EQ(buffer_size, sizeof(MojoCreateDataPipeOptions));
120 options = static_cast<const MojoCreateDataPipeOptions*>(buffer_start); 121 options = static_cast<const MojoCreateDataPipeOptions*>(buffer_start);
121 DCHECK_EQ(options->struct_size, buffer_size); 122 DCHECK_EQ(options->struct_size, buffer_size);
122 } 123 }
123 MojoHandle handle1; 124 MojoHandle handle1;
124 MojoHandle handle2; 125 MojoHandle handle2;
125 MojoResult result = MojoCreateDataPipe(options, &handle1, &handle2); 126 MojoResult result = MojoCreateDataPipe(options, &handle1, &handle2);
126 return Java_CoreImpl_newNativeCreationResult(env, result, handle1, handle2); 127 return Java_CoreImpl_newNativeCreationResult(env, result, handle1, handle2)
128 .Release();
127 } 129 }
128 130
129 static ScopedJavaLocalRef<jobject> CreateSharedBuffer(JNIEnv* env, 131 static jobject CreateSharedBuffer(JNIEnv* env,
130 jobject jcaller, 132 jobject jcaller,
131 jobject options_buffer, 133 jobject options_buffer,
132 jlong num_bytes) { 134 jlong num_bytes) {
133 const MojoCreateSharedBufferOptions* options = 0; 135 const MojoCreateSharedBufferOptions* options = 0;
134 if (options_buffer) { 136 if (options_buffer) {
135 const void* buffer_start = env->GetDirectBufferAddress(options_buffer); 137 const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
136 DCHECK(buffer_start); 138 DCHECK(buffer_start);
137 DCHECK_EQ(reinterpret_cast<const uintptr_t>(buffer_start) % 8, 0u); 139 DCHECK_EQ(reinterpret_cast<const uintptr_t>(buffer_start) % 8, 0u);
138 const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer); 140 const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer);
139 DCHECK_EQ(buffer_size, sizeof(MojoCreateSharedBufferOptions)); 141 DCHECK_EQ(buffer_size, sizeof(MojoCreateSharedBufferOptions));
140 options = static_cast<const MojoCreateSharedBufferOptions*>(buffer_start); 142 options = static_cast<const MojoCreateSharedBufferOptions*>(buffer_start);
141 DCHECK_EQ(options->struct_size, buffer_size); 143 DCHECK_EQ(options->struct_size, buffer_size);
142 } 144 }
143 MojoHandle handle; 145 MojoHandle handle;
144 MojoResult result = MojoCreateSharedBuffer(options, num_bytes, &handle); 146 MojoResult result = MojoCreateSharedBuffer(options, num_bytes, &handle);
145 return Java_CoreImpl_newResultAndInteger(env, result, handle); 147 return Java_CoreImpl_newResultAndInteger(env, result, handle).Release();
146 } 148 }
147 149
148 static jint Close(JNIEnv* env, jobject jcaller, jint mojo_handle) { 150 static jint Close(JNIEnv* env, jobject jcaller, jint mojo_handle) {
149 return MojoClose(mojo_handle); 151 return MojoClose(mojo_handle);
150 } 152 }
151 153
152 static jint Wait(JNIEnv* env, 154 static jint Wait(JNIEnv* env,
153 jobject jcaller, 155 jobject jcaller,
154 jobject buffer, 156 jobject buffer,
155 jint mojo_handle, 157 jint mojo_handle,
(...skipping 30 matching lines...) Expand all
186 if (handles_buffer) { 188 if (handles_buffer) {
187 handles = 189 handles =
188 static_cast<MojoHandle*>(env->GetDirectBufferAddress(handles_buffer)); 190 static_cast<MojoHandle*>(env->GetDirectBufferAddress(handles_buffer));
189 num_handles = env->GetDirectBufferCapacity(handles_buffer) / 4; 191 num_handles = env->GetDirectBufferCapacity(handles_buffer) / 4;
190 } 192 }
191 // Java code will handle invalidating handles if the write succeeded. 193 // Java code will handle invalidating handles if the write succeeded.
192 return MojoWriteMessage( 194 return MojoWriteMessage(
193 mojo_handle, buffer_start, buffer_size, handles, num_handles, flags); 195 mojo_handle, buffer_start, buffer_size, handles, num_handles, flags);
194 } 196 }
195 197
196 static ScopedJavaLocalRef<jobject> ReadMessage(JNIEnv* env, 198 static jobject ReadMessage(JNIEnv* env,
197 jobject jcaller, 199 jobject jcaller,
198 jint mojo_handle, 200 jint mojo_handle,
199 jobject bytes, 201 jobject bytes,
200 jobject handles_buffer, 202 jobject handles_buffer,
201 jint flags) { 203 jint flags) {
202 void* buffer_start = 0; 204 void* buffer_start = 0;
203 uint32_t buffer_size = 0; 205 uint32_t buffer_size = 0;
204 if (bytes) { 206 if (bytes) {
205 buffer_start = env->GetDirectBufferAddress(bytes); 207 buffer_start = env->GetDirectBufferAddress(bytes);
206 DCHECK(buffer_start); 208 DCHECK(buffer_start);
207 buffer_size = env->GetDirectBufferCapacity(bytes); 209 buffer_size = env->GetDirectBufferCapacity(bytes);
208 } 210 }
209 MojoHandle* handles = 0; 211 MojoHandle* handles = 0;
210 uint32_t num_handles = 0; 212 uint32_t num_handles = 0;
211 if (handles_buffer) { 213 if (handles_buffer) {
212 handles = 214 handles =
213 static_cast<MojoHandle*>(env->GetDirectBufferAddress(handles_buffer)); 215 static_cast<MojoHandle*>(env->GetDirectBufferAddress(handles_buffer));
214 num_handles = env->GetDirectBufferCapacity(handles_buffer) / 4; 216 num_handles = env->GetDirectBufferCapacity(handles_buffer) / 4;
215 } 217 }
216 MojoResult result = MojoReadMessage( 218 MojoResult result = MojoReadMessage(
217 mojo_handle, buffer_start, &buffer_size, handles, &num_handles, flags); 219 mojo_handle, buffer_start, &buffer_size, handles, &num_handles, flags);
218 // Jave code will handle taking ownership of any received handle. 220 // Jave code will handle taking ownership of any received handle.
219 return Java_CoreImpl_newReadMessageResult(env, result, buffer_size, 221 return Java_CoreImpl_newReadMessageResult(
220 num_handles); 222 env, result, buffer_size, num_handles).Release();
221 } 223 }
222 224
223 static ScopedJavaLocalRef<jobject> ReadData(JNIEnv* env, 225 static jobject ReadData(JNIEnv* env,
224 jobject jcaller, 226 jobject jcaller,
225 jint mojo_handle, 227 jint mojo_handle,
226 jobject elements, 228 jobject elements,
227 jint elements_capacity, 229 jint elements_capacity,
228 jint flags) { 230 jint flags) {
229 void* buffer_start = 0; 231 void* buffer_start = 0;
230 uint32_t buffer_size = elements_capacity; 232 uint32_t buffer_size = elements_capacity;
231 if (elements) { 233 if (elements) {
232 buffer_start = env->GetDirectBufferAddress(elements); 234 buffer_start = env->GetDirectBufferAddress(elements);
233 DCHECK(buffer_start); 235 DCHECK(buffer_start);
234 DCHECK(elements_capacity <= env->GetDirectBufferCapacity(elements)); 236 DCHECK(elements_capacity <= env->GetDirectBufferCapacity(elements));
235 } 237 }
236 MojoResult result = 238 MojoResult result =
237 MojoReadData(mojo_handle, buffer_start, &buffer_size, flags); 239 MojoReadData(mojo_handle, buffer_start, &buffer_size, flags);
238 return Java_CoreImpl_newResultAndInteger( 240 return Java_CoreImpl_newResultAndInteger(
239 env, result, (result == MOJO_RESULT_OK) ? buffer_size : 0); 241 env, result, (result == MOJO_RESULT_OK) ? buffer_size : 0)
242 .Release();
240 } 243 }
241 244
242 static ScopedJavaLocalRef<jobject> BeginReadData(JNIEnv* env, 245 static jobject BeginReadData(JNIEnv* env,
243 jobject jcaller, 246 jobject jcaller,
244 jint mojo_handle, 247 jint mojo_handle,
245 jint num_bytes, 248 jint num_bytes,
246 jint flags) { 249 jint flags) {
247 void const* buffer = 0; 250 void const* buffer = 0;
248 uint32_t buffer_size = num_bytes; 251 uint32_t buffer_size = num_bytes;
249 MojoResult result = 252 MojoResult result =
250 MojoBeginReadData(mojo_handle, &buffer, &buffer_size, flags); 253 MojoBeginReadData(mojo_handle, &buffer, &buffer_size, flags);
251 jobject byte_buffer = 0; 254 jobject byte_buffer = 0;
252 if (result == MOJO_RESULT_OK) { 255 if (result == MOJO_RESULT_OK) {
253 byte_buffer = 256 byte_buffer =
254 env->NewDirectByteBuffer(const_cast<void*>(buffer), buffer_size); 257 env->NewDirectByteBuffer(const_cast<void*>(buffer), buffer_size);
255 } 258 }
256 return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer); 259 return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer).Release();
257 } 260 }
258 261
259 static jint EndReadData(JNIEnv* env, 262 static jint EndReadData(JNIEnv* env,
260 jobject jcaller, 263 jobject jcaller,
261 jint mojo_handle, 264 jint mojo_handle,
262 jint num_bytes_read) { 265 jint num_bytes_read) {
263 return MojoEndReadData(mojo_handle, num_bytes_read); 266 return MojoEndReadData(mojo_handle, num_bytes_read);
264 } 267 }
265 268
266 static ScopedJavaLocalRef<jobject> WriteData(JNIEnv* env, 269 static jobject WriteData(JNIEnv* env,
267 jobject jcaller, 270 jobject jcaller,
268 jint mojo_handle, 271 jint mojo_handle,
269 jobject elements, 272 jobject elements,
270 jint limit, 273 jint limit,
271 jint flags) { 274 jint flags) {
272 void* buffer_start = env->GetDirectBufferAddress(elements); 275 void* buffer_start = env->GetDirectBufferAddress(elements);
273 DCHECK(buffer_start); 276 DCHECK(buffer_start);
274 DCHECK(limit <= env->GetDirectBufferCapacity(elements)); 277 DCHECK(limit <= env->GetDirectBufferCapacity(elements));
275 uint32_t buffer_size = limit; 278 uint32_t buffer_size = limit;
276 MojoResult result = 279 MojoResult result =
277 MojoWriteData(mojo_handle, buffer_start, &buffer_size, flags); 280 MojoWriteData(mojo_handle, buffer_start, &buffer_size, flags);
278 return Java_CoreImpl_newResultAndInteger( 281 return Java_CoreImpl_newResultAndInteger(
279 env, result, (result == MOJO_RESULT_OK) ? buffer_size : 0); 282 env, result, (result == MOJO_RESULT_OK) ? buffer_size : 0)
283 .Release();
280 } 284 }
281 285
282 static ScopedJavaLocalRef<jobject> BeginWriteData(JNIEnv* env, 286 static jobject BeginWriteData(JNIEnv* env,
283 jobject jcaller, 287 jobject jcaller,
284 jint mojo_handle, 288 jint mojo_handle,
285 jint num_bytes, 289 jint num_bytes,
286 jint flags) { 290 jint flags) {
287 void* buffer = 0; 291 void* buffer = 0;
288 uint32_t buffer_size = num_bytes; 292 uint32_t buffer_size = num_bytes;
289 MojoResult result = 293 MojoResult result =
290 MojoBeginWriteData(mojo_handle, &buffer, &buffer_size, flags); 294 MojoBeginWriteData(mojo_handle, &buffer, &buffer_size, flags);
291 jobject byte_buffer = 0; 295 jobject byte_buffer = 0;
292 if (result == MOJO_RESULT_OK) { 296 if (result == MOJO_RESULT_OK) {
293 byte_buffer = env->NewDirectByteBuffer(buffer, buffer_size); 297 byte_buffer = env->NewDirectByteBuffer(buffer, buffer_size);
294 } 298 }
295 return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer); 299 return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer).Release();
296 } 300 }
297 301
298 static jint EndWriteData(JNIEnv* env, 302 static jint EndWriteData(JNIEnv* env,
299 jobject jcaller, 303 jobject jcaller,
300 jint mojo_handle, 304 jint mojo_handle,
301 jint num_bytes_written) { 305 jint num_bytes_written) {
302 return MojoEndWriteData(mojo_handle, num_bytes_written); 306 return MojoEndWriteData(mojo_handle, num_bytes_written);
303 } 307 }
304 308
305 static ScopedJavaLocalRef<jobject> Duplicate(JNIEnv* env, 309 static jobject Duplicate(JNIEnv* env,
306 jobject jcaller, 310 jobject jcaller,
307 jint mojo_handle, 311 jint mojo_handle,
308 jobject options_buffer) { 312 jobject options_buffer) {
309 const MojoDuplicateBufferHandleOptions* options = 0; 313 const MojoDuplicateBufferHandleOptions* options = 0;
310 if (options_buffer) { 314 if (options_buffer) {
311 const void* buffer_start = env->GetDirectBufferAddress(options_buffer); 315 const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
312 DCHECK(buffer_start); 316 DCHECK(buffer_start);
313 const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer); 317 const size_t buffer_size = env->GetDirectBufferCapacity(options_buffer);
314 DCHECK_EQ(buffer_size, sizeof(MojoDuplicateBufferHandleOptions)); 318 DCHECK_EQ(buffer_size, sizeof(MojoDuplicateBufferHandleOptions));
315 options = 319 options =
316 static_cast<const MojoDuplicateBufferHandleOptions*>(buffer_start); 320 static_cast<const MojoDuplicateBufferHandleOptions*>(buffer_start);
317 DCHECK_EQ(options->struct_size, buffer_size); 321 DCHECK_EQ(options->struct_size, buffer_size);
318 } 322 }
319 MojoHandle handle; 323 MojoHandle handle;
320 MojoResult result = MojoDuplicateBufferHandle(mojo_handle, options, &handle); 324 MojoResult result = MojoDuplicateBufferHandle(mojo_handle, options, &handle);
321 return Java_CoreImpl_newResultAndInteger(env, result, handle); 325 return Java_CoreImpl_newResultAndInteger(env, result, handle).Release();
322 } 326 }
323 327
324 static ScopedJavaLocalRef<jobject> Map(JNIEnv* env, 328 static jobject Map(JNIEnv* env,
325 jobject jcaller, 329 jobject jcaller,
326 jint mojo_handle, 330 jint mojo_handle,
327 jlong offset, 331 jlong offset,
328 jlong num_bytes, 332 jlong num_bytes,
329 jint flags) { 333 jint flags) {
330 void* buffer = 0; 334 void* buffer = 0;
331 MojoResult result = 335 MojoResult result =
332 MojoMapBuffer(mojo_handle, offset, num_bytes, &buffer, flags); 336 MojoMapBuffer(mojo_handle, offset, num_bytes, &buffer, flags);
333 jobject byte_buffer = 0; 337 jobject byte_buffer = 0;
334 if (result == MOJO_RESULT_OK) { 338 if (result == MOJO_RESULT_OK) {
335 byte_buffer = env->NewDirectByteBuffer(buffer, num_bytes); 339 byte_buffer = env->NewDirectByteBuffer(buffer, num_bytes);
336 } 340 }
337 return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer); 341 return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer).Release();
338 } 342 }
339 343
340 static int Unmap(JNIEnv* env, jobject jcaller, jobject buffer) { 344 static int Unmap(JNIEnv* env, jobject jcaller, jobject buffer) {
341 void* buffer_start = env->GetDirectBufferAddress(buffer); 345 void* buffer_start = env->GetDirectBufferAddress(buffer);
342 DCHECK(buffer_start); 346 DCHECK(buffer_start);
343 return MojoUnmapBuffer(buffer_start); 347 return MojoUnmapBuffer(buffer_start);
344 } 348 }
345 349
346 static ScopedJavaLocalRef<jobject> AsyncWait(JNIEnv* env, 350 static jobject AsyncWait(JNIEnv* env,
347 jobject jcaller, 351 jobject jcaller,
348 jint mojo_handle, 352 jint mojo_handle,
349 jint signals, 353 jint signals,
350 jlong deadline, 354 jlong deadline,
351 jobject callback) { 355 jobject callback) {
352 AsyncWaitCallbackData* callback_data = 356 AsyncWaitCallbackData* callback_data =
353 new AsyncWaitCallbackData(env, jcaller, callback); 357 new AsyncWaitCallbackData(env, jcaller, callback);
354 MojoAsyncWaitID cancel_id; 358 MojoAsyncWaitID cancel_id;
355 if (static_cast<MojoHandle>(mojo_handle) != MOJO_HANDLE_INVALID) { 359 if (static_cast<MojoHandle>(mojo_handle) != MOJO_HANDLE_INVALID) {
356 cancel_id = Environment::GetDefaultAsyncWaiter()->AsyncWait( 360 cancel_id = Environment::GetDefaultAsyncWaiter()->AsyncWait(
357 mojo_handle, signals, deadline, AsyncWaitCallback, callback_data); 361 mojo_handle, signals, deadline, AsyncWaitCallback, callback_data);
358 } else { 362 } else {
359 cancel_id = kInvalidHandleCancelID; 363 cancel_id = kInvalidHandleCancelID;
360 base::MessageLoop::current()->PostTask( 364 base::MessageLoop::current()->PostTask(
361 FROM_HERE, 365 FROM_HERE,
362 base::Bind( 366 base::Bind(
363 &AsyncWaitCallback, callback_data, MOJO_RESULT_INVALID_ARGUMENT)); 367 &AsyncWaitCallback, callback_data, MOJO_RESULT_INVALID_ARGUMENT));
364 } 368 }
365 base::android::ScopedJavaLocalRef<jobject> cancellable = 369 base::android::ScopedJavaLocalRef<jobject> cancellable =
366 Java_CoreImpl_newAsyncWaiterCancellableImpl( 370 Java_CoreImpl_newAsyncWaiterCancellableImpl(
367 env, jcaller, cancel_id, reinterpret_cast<intptr_t>(callback_data)); 371 env, jcaller, cancel_id, reinterpret_cast<intptr_t>(callback_data));
368 callback_data->cancellable.Reset(env, cancellable.obj()); 372 callback_data->cancellable.Reset(env, cancellable.obj());
369 return cancellable; 373 return cancellable.Release();
370 } 374 }
371 375
372 static void CancelAsyncWait(JNIEnv* env, 376 static void CancelAsyncWait(JNIEnv* env,
373 jobject jcaller, 377 jobject jcaller,
374 jlong id, 378 jlong id,
375 jlong data_ptr) { 379 jlong data_ptr) {
376 if (id == 0) { 380 if (id == 0) {
377 // If |id| is |kInvalidHandleCancelID|, the async wait was done on an 381 // If |id| is |kInvalidHandleCancelID|, the async wait was done on an
378 // invalid handle, so the AsyncWaitCallback will be called and will clear 382 // invalid handle, so the AsyncWaitCallback will be called and will clear
379 // the data_ptr. 383 // the data_ptr.
(...skipping 15 matching lines...) Expand all
395 return 0; 399 return 0;
396 return alignment - offset; 400 return alignment - offset;
397 } 401 }
398 402
399 bool RegisterCoreImpl(JNIEnv* env) { 403 bool RegisterCoreImpl(JNIEnv* env) {
400 return RegisterNativesImpl(env); 404 return RegisterNativesImpl(env);
401 } 405 }
402 406
403 } // namespace android 407 } // namespace android
404 } // namespace mojo 408 } // namespace mojo
OLDNEW
« no previous file with comments | « content/shell/browser/shell_mojo_test_utils_android.cc ('k') | net/android/gurl_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698