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) { |