| Index: mojo/android/system/core_impl.cc
|
| diff --git a/mojo/android/system/core_impl.cc b/mojo/android/system/core_impl.cc
|
| index 3c36d1db71a39ebfecbc5dbc7510979a922453af..7fed58cd3de9bf097baf48e4806db9df30288436 100644
|
| --- a/mojo/android/system/core_impl.cc
|
| +++ b/mojo/android/system/core_impl.cc
|
| @@ -94,9 +94,9 @@ static jint WaitMany(JNIEnv* env,
|
| result_index, states_start);
|
| }
|
|
|
| -static jobject CreateMessagePipe(JNIEnv* env,
|
| - jobject jcaller,
|
| - jobject options_buffer) {
|
| +static ScopedJavaLocalRef<jobject> CreateMessagePipe(JNIEnv* env,
|
| + jobject jcaller,
|
| + jobject options_buffer) {
|
| const MojoCreateMessagePipeOptions* options = NULL;
|
| if (options_buffer) {
|
| const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
|
| @@ -110,13 +110,12 @@ static jobject CreateMessagePipe(JNIEnv* env,
|
| MojoHandle handle1;
|
| MojoHandle handle2;
|
| MojoResult result = MojoCreateMessagePipe(options, &handle1, &handle2);
|
| - return Java_CoreImpl_newNativeCreationResult(env, result, handle1, handle2)
|
| - .Release();
|
| + return Java_CoreImpl_newNativeCreationResult(env, result, handle1, handle2);
|
| }
|
|
|
| -static jobject CreateDataPipe(JNIEnv* env,
|
| - jobject jcaller,
|
| - jobject options_buffer) {
|
| +static ScopedJavaLocalRef<jobject> CreateDataPipe(JNIEnv* env,
|
| + jobject jcaller,
|
| + jobject options_buffer) {
|
| const MojoCreateDataPipeOptions* options = NULL;
|
| if (options_buffer) {
|
| const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
|
| @@ -130,14 +129,13 @@ static jobject CreateDataPipe(JNIEnv* env,
|
| MojoHandle handle1;
|
| MojoHandle handle2;
|
| MojoResult result = MojoCreateDataPipe(options, &handle1, &handle2);
|
| - return Java_CoreImpl_newNativeCreationResult(env, result, handle1, handle2)
|
| - .Release();
|
| + return Java_CoreImpl_newNativeCreationResult(env, result, handle1, handle2);
|
| }
|
|
|
| -static jobject CreateSharedBuffer(JNIEnv* env,
|
| - jobject jcaller,
|
| - jobject options_buffer,
|
| - jlong num_bytes) {
|
| +static ScopedJavaLocalRef<jobject> CreateSharedBuffer(JNIEnv* env,
|
| + jobject jcaller,
|
| + jobject options_buffer,
|
| + jlong num_bytes) {
|
| const MojoCreateSharedBufferOptions* options = 0;
|
| if (options_buffer) {
|
| const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
|
| @@ -150,7 +148,7 @@ static jobject CreateSharedBuffer(JNIEnv* env,
|
| }
|
| MojoHandle handle;
|
| MojoResult result = MojoCreateSharedBuffer(options, num_bytes, &handle);
|
| - return Java_CoreImpl_newResultAndInteger(env, result, handle).Release();
|
| + return Java_CoreImpl_newResultAndInteger(env, result, handle);
|
| }
|
|
|
| static jint Close(JNIEnv* env, jobject jcaller, jint mojo_handle) {
|
| @@ -201,12 +199,12 @@ static jint WriteMessage(JNIEnv* env,
|
| mojo_handle, buffer_start, buffer_size, handles, num_handles, flags);
|
| }
|
|
|
| -static jobject ReadMessage(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jobject bytes,
|
| - jobject handles_buffer,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> ReadMessage(JNIEnv* env,
|
| + jobject jcaller,
|
| + jint mojo_handle,
|
| + jobject bytes,
|
| + jobject handles_buffer,
|
| + jint flags) {
|
| void* buffer_start = 0;
|
| uint32_t buffer_size = 0;
|
| if (bytes) {
|
| @@ -224,16 +222,16 @@ static jobject ReadMessage(JNIEnv* env,
|
| MojoResult result = MojoReadMessage(
|
| mojo_handle, buffer_start, &buffer_size, handles, &num_handles, flags);
|
| // Jave code will handle taking ownership of any received handle.
|
| - return Java_CoreImpl_newReadMessageResult(
|
| - env, result, buffer_size, num_handles).Release();
|
| + return Java_CoreImpl_newReadMessageResult(env, result, buffer_size,
|
| + num_handles);
|
| }
|
|
|
| -static jobject ReadData(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jobject elements,
|
| - jint elements_capacity,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> ReadData(JNIEnv* env,
|
| + jobject jcaller,
|
| + jint mojo_handle,
|
| + jobject elements,
|
| + jint elements_capacity,
|
| + jint flags) {
|
| void* buffer_start = 0;
|
| uint32_t buffer_size = elements_capacity;
|
| if (elements) {
|
| @@ -244,15 +242,14 @@ static jobject ReadData(JNIEnv* env,
|
| MojoResult result =
|
| MojoReadData(mojo_handle, buffer_start, &buffer_size, flags);
|
| return Java_CoreImpl_newResultAndInteger(
|
| - env, result, (result == MOJO_RESULT_OK) ? buffer_size : 0)
|
| - .Release();
|
| + env, result, (result == MOJO_RESULT_OK) ? buffer_size : 0);
|
| }
|
|
|
| -static jobject BeginReadData(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jint num_bytes,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> BeginReadData(JNIEnv* env,
|
| + jobject jcaller,
|
| + jint mojo_handle,
|
| + jint num_bytes,
|
| + jint flags) {
|
| void const* buffer = 0;
|
| uint32_t buffer_size = num_bytes;
|
| MojoResult result =
|
| @@ -262,7 +259,7 @@ static jobject BeginReadData(JNIEnv* env,
|
| byte_buffer =
|
| env->NewDirectByteBuffer(const_cast<void*>(buffer), buffer_size);
|
| }
|
| - return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer).Release();
|
| + return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer);
|
| }
|
|
|
| static jint EndReadData(JNIEnv* env,
|
| @@ -272,12 +269,12 @@ static jint EndReadData(JNIEnv* env,
|
| return MojoEndReadData(mojo_handle, num_bytes_read);
|
| }
|
|
|
| -static jobject WriteData(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jobject elements,
|
| - jint limit,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> WriteData(JNIEnv* env,
|
| + jobject jcaller,
|
| + jint mojo_handle,
|
| + jobject elements,
|
| + jint limit,
|
| + jint flags) {
|
| void* buffer_start = env->GetDirectBufferAddress(elements);
|
| DCHECK(buffer_start);
|
| DCHECK(limit <= env->GetDirectBufferCapacity(elements));
|
| @@ -285,15 +282,14 @@ static jobject WriteData(JNIEnv* env,
|
| MojoResult result =
|
| MojoWriteData(mojo_handle, buffer_start, &buffer_size, flags);
|
| return Java_CoreImpl_newResultAndInteger(
|
| - env, result, (result == MOJO_RESULT_OK) ? buffer_size : 0)
|
| - .Release();
|
| + env, result, (result == MOJO_RESULT_OK) ? buffer_size : 0);
|
| }
|
|
|
| -static jobject BeginWriteData(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jint num_bytes,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> BeginWriteData(JNIEnv* env,
|
| + jobject jcaller,
|
| + jint mojo_handle,
|
| + jint num_bytes,
|
| + jint flags) {
|
| void* buffer = 0;
|
| uint32_t buffer_size = num_bytes;
|
| MojoResult result =
|
| @@ -302,7 +298,7 @@ static jobject BeginWriteData(JNIEnv* env,
|
| if (result == MOJO_RESULT_OK) {
|
| byte_buffer = env->NewDirectByteBuffer(buffer, buffer_size);
|
| }
|
| - return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer).Release();
|
| + return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer);
|
| }
|
|
|
| static jint EndWriteData(JNIEnv* env,
|
| @@ -312,10 +308,10 @@ static jint EndWriteData(JNIEnv* env,
|
| return MojoEndWriteData(mojo_handle, num_bytes_written);
|
| }
|
|
|
| -static jobject Duplicate(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jobject options_buffer) {
|
| +static ScopedJavaLocalRef<jobject> Duplicate(JNIEnv* env,
|
| + jobject jcaller,
|
| + jint mojo_handle,
|
| + jobject options_buffer) {
|
| const MojoDuplicateBufferHandleOptions* options = 0;
|
| if (options_buffer) {
|
| const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
|
| @@ -328,15 +324,15 @@ static jobject Duplicate(JNIEnv* env,
|
| }
|
| MojoHandle handle;
|
| MojoResult result = MojoDuplicateBufferHandle(mojo_handle, options, &handle);
|
| - return Java_CoreImpl_newResultAndInteger(env, result, handle).Release();
|
| + return Java_CoreImpl_newResultAndInteger(env, result, handle);
|
| }
|
|
|
| -static jobject Map(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jlong offset,
|
| - jlong num_bytes,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> Map(JNIEnv* env,
|
| + jobject jcaller,
|
| + jint mojo_handle,
|
| + jlong offset,
|
| + jlong num_bytes,
|
| + jint flags) {
|
| void* buffer = 0;
|
| MojoResult result =
|
| MojoMapBuffer(mojo_handle, offset, num_bytes, &buffer, flags);
|
| @@ -344,7 +340,7 @@ static jobject Map(JNIEnv* env,
|
| if (result == MOJO_RESULT_OK) {
|
| byte_buffer = env->NewDirectByteBuffer(buffer, num_bytes);
|
| }
|
| - return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer).Release();
|
| + return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer);
|
| }
|
|
|
| static int Unmap(JNIEnv* env, jobject jcaller, jobject buffer) {
|
| @@ -353,12 +349,12 @@ static int Unmap(JNIEnv* env, jobject jcaller, jobject buffer) {
|
| return MojoUnmapBuffer(buffer_start);
|
| }
|
|
|
| -static jobject AsyncWait(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jint signals,
|
| - jlong deadline,
|
| - jobject callback) {
|
| +static ScopedJavaLocalRef<jobject> AsyncWait(JNIEnv* env,
|
| + jobject jcaller,
|
| + jint mojo_handle,
|
| + jint signals,
|
| + jlong deadline,
|
| + jobject callback) {
|
| AsyncWaitCallbackData* callback_data =
|
| new AsyncWaitCallbackData(env, jcaller, callback);
|
| MojoAsyncWaitID cancel_id;
|
| @@ -376,7 +372,7 @@ static jobject AsyncWait(JNIEnv* env,
|
| Java_CoreImpl_newAsyncWaiterCancellableImpl(
|
| env, jcaller, cancel_id, reinterpret_cast<intptr_t>(callback_data));
|
| callback_data->cancellable.Reset(env, cancellable.obj());
|
| - return cancellable.Release();
|
| + return cancellable;
|
| }
|
|
|
| static void CancelAsyncWait(JNIEnv* env,
|
| @@ -406,17 +402,15 @@ static jint GetNativeBufferOffset(JNIEnv* env,
|
| return alignment - offset;
|
| }
|
|
|
| -static jobject GetBufferInformation(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle) {
|
| +static ScopedJavaLocalRef<jobject> GetBufferInformation(JNIEnv* env,
|
| + jobject jcaller,
|
| + jint mojo_handle) {
|
| MojoBufferInformation buffer_information;
|
| MojoResult result =
|
| MojoGetBufferInformation(static_cast<MojoHandle>(mojo_handle),
|
| &buffer_information, sizeof(buffer_information));
|
| return Java_CoreImpl_newResultAndBufferInformation(
|
| - env, result, buffer_information.flags,
|
| - buffer_information.num_bytes)
|
| - .Release();
|
| + env, result, buffer_information.flags, buffer_information.num_bytes);
|
| }
|
|
|
| bool RegisterCoreImpl(JNIEnv* env) {
|
|
|