| Index: mojo/android/system/core_impl.cc
|
| diff --git a/mojo/android/system/core_impl.cc b/mojo/android/system/core_impl.cc
|
| index 7fed58cd3de9bf097baf48e4806db9df30288436..637b7b3cae86a63e65c2f78c544987a8ef54bb8c 100644
|
| --- a/mojo/android/system/core_impl.cc
|
| +++ b/mojo/android/system/core_impl.cc
|
| @@ -55,13 +55,14 @@ void AsyncWaitCallback(void* data, MojoResult result) {
|
| namespace mojo {
|
| namespace android {
|
|
|
| -static jlong GetTimeTicksNow(JNIEnv* env, jobject jcaller) {
|
| +static jlong GetTimeTicksNow(JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller) {
|
| return MojoGetTimeTicksNow();
|
| }
|
|
|
| static jint WaitMany(JNIEnv* env,
|
| - jobject jcaller,
|
| - jobject buffer,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + const JavaParamRef<jobject>& buffer,
|
| jlong deadline) {
|
| // |buffer| contains, in this order
|
| // input: The array of N handles (MojoHandle, 4 bytes each)
|
| @@ -94,9 +95,10 @@ static jint WaitMany(JNIEnv* env,
|
| result_index, states_start);
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> CreateMessagePipe(JNIEnv* env,
|
| - jobject jcaller,
|
| - jobject options_buffer) {
|
| +static ScopedJavaLocalRef<jobject> CreateMessagePipe(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + const JavaParamRef<jobject>& options_buffer) {
|
| const MojoCreateMessagePipeOptions* options = NULL;
|
| if (options_buffer) {
|
| const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
|
| @@ -113,9 +115,10 @@ static ScopedJavaLocalRef<jobject> CreateMessagePipe(JNIEnv* env,
|
| return Java_CoreImpl_newNativeCreationResult(env, result, handle1, handle2);
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> CreateDataPipe(JNIEnv* env,
|
| - jobject jcaller,
|
| - jobject options_buffer) {
|
| +static ScopedJavaLocalRef<jobject> CreateDataPipe(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + const JavaParamRef<jobject>& options_buffer) {
|
| const MojoCreateDataPipeOptions* options = NULL;
|
| if (options_buffer) {
|
| const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
|
| @@ -132,10 +135,11 @@ static ScopedJavaLocalRef<jobject> CreateDataPipe(JNIEnv* env,
|
| return Java_CoreImpl_newNativeCreationResult(env, result, handle1, handle2);
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> CreateSharedBuffer(JNIEnv* env,
|
| - jobject jcaller,
|
| - jobject options_buffer,
|
| - jlong num_bytes) {
|
| +static ScopedJavaLocalRef<jobject> CreateSharedBuffer(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + const JavaParamRef<jobject>& options_buffer,
|
| + jlong num_bytes) {
|
| const MojoCreateSharedBufferOptions* options = 0;
|
| if (options_buffer) {
|
| const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
|
| @@ -151,13 +155,15 @@ static ScopedJavaLocalRef<jobject> CreateSharedBuffer(JNIEnv* env,
|
| return Java_CoreImpl_newResultAndInteger(env, result, handle);
|
| }
|
|
|
| -static jint Close(JNIEnv* env, jobject jcaller, jint mojo_handle) {
|
| +static jint Close(JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + jint mojo_handle) {
|
| return MojoClose(mojo_handle);
|
| }
|
|
|
| static jint Wait(JNIEnv* env,
|
| - jobject jcaller,
|
| - jobject buffer,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + const JavaParamRef<jobject>& buffer,
|
| jint mojo_handle,
|
| jint signals,
|
| jlong deadline) {
|
| @@ -173,11 +179,11 @@ static jint Wait(JNIEnv* env,
|
| }
|
|
|
| static jint WriteMessage(JNIEnv* env,
|
| - jobject jcaller,
|
| + const JavaParamRef<jobject>& jcaller,
|
| jint mojo_handle,
|
| - jobject bytes,
|
| + const JavaParamRef<jobject>& bytes,
|
| jint num_bytes,
|
| - jobject handles_buffer,
|
| + const JavaParamRef<jobject>& handles_buffer,
|
| jint flags) {
|
| const void* buffer_start = 0;
|
| uint32_t buffer_size = 0;
|
| @@ -199,12 +205,13 @@ static jint WriteMessage(JNIEnv* env,
|
| mojo_handle, buffer_start, buffer_size, handles, num_handles, flags);
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> ReadMessage(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jobject bytes,
|
| - jobject handles_buffer,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> ReadMessage(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + jint mojo_handle,
|
| + const JavaParamRef<jobject>& bytes,
|
| + const JavaParamRef<jobject>& handles_buffer,
|
| + jint flags) {
|
| void* buffer_start = 0;
|
| uint32_t buffer_size = 0;
|
| if (bytes) {
|
| @@ -226,12 +233,13 @@ static ScopedJavaLocalRef<jobject> ReadMessage(JNIEnv* env,
|
| num_handles);
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> ReadData(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jobject elements,
|
| - jint elements_capacity,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> ReadData(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + jint mojo_handle,
|
| + const JavaParamRef<jobject>& elements,
|
| + jint elements_capacity,
|
| + jint flags) {
|
| void* buffer_start = 0;
|
| uint32_t buffer_size = elements_capacity;
|
| if (elements) {
|
| @@ -245,11 +253,12 @@ static ScopedJavaLocalRef<jobject> ReadData(JNIEnv* env,
|
| env, result, (result == MOJO_RESULT_OK) ? buffer_size : 0);
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> BeginReadData(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jint num_bytes,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> BeginReadData(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + jint mojo_handle,
|
| + jint num_bytes,
|
| + jint flags) {
|
| void const* buffer = 0;
|
| uint32_t buffer_size = num_bytes;
|
| MojoResult result =
|
| @@ -263,18 +272,19 @@ static ScopedJavaLocalRef<jobject> BeginReadData(JNIEnv* env,
|
| }
|
|
|
| static jint EndReadData(JNIEnv* env,
|
| - jobject jcaller,
|
| + const JavaParamRef<jobject>& jcaller,
|
| jint mojo_handle,
|
| jint num_bytes_read) {
|
| return MojoEndReadData(mojo_handle, num_bytes_read);
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> WriteData(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jobject elements,
|
| - jint limit,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> WriteData(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + jint mojo_handle,
|
| + const JavaParamRef<jobject>& elements,
|
| + jint limit,
|
| + jint flags) {
|
| void* buffer_start = env->GetDirectBufferAddress(elements);
|
| DCHECK(buffer_start);
|
| DCHECK(limit <= env->GetDirectBufferCapacity(elements));
|
| @@ -285,11 +295,12 @@ static ScopedJavaLocalRef<jobject> WriteData(JNIEnv* env,
|
| env, result, (result == MOJO_RESULT_OK) ? buffer_size : 0);
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> BeginWriteData(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jint num_bytes,
|
| - jint flags) {
|
| +static ScopedJavaLocalRef<jobject> BeginWriteData(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + jint mojo_handle,
|
| + jint num_bytes,
|
| + jint flags) {
|
| void* buffer = 0;
|
| uint32_t buffer_size = num_bytes;
|
| MojoResult result =
|
| @@ -302,16 +313,17 @@ static ScopedJavaLocalRef<jobject> BeginWriteData(JNIEnv* env,
|
| }
|
|
|
| static jint EndWriteData(JNIEnv* env,
|
| - jobject jcaller,
|
| + const JavaParamRef<jobject>& jcaller,
|
| jint mojo_handle,
|
| jint num_bytes_written) {
|
| return MojoEndWriteData(mojo_handle, num_bytes_written);
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> Duplicate(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jobject options_buffer) {
|
| +static ScopedJavaLocalRef<jobject> Duplicate(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + jint mojo_handle,
|
| + const JavaParamRef<jobject>& options_buffer) {
|
| const MojoDuplicateBufferHandleOptions* options = 0;
|
| if (options_buffer) {
|
| const void* buffer_start = env->GetDirectBufferAddress(options_buffer);
|
| @@ -328,7 +340,7 @@ static ScopedJavaLocalRef<jobject> Duplicate(JNIEnv* env,
|
| }
|
|
|
| static ScopedJavaLocalRef<jobject> Map(JNIEnv* env,
|
| - jobject jcaller,
|
| + const JavaParamRef<jobject>& jcaller,
|
| jint mojo_handle,
|
| jlong offset,
|
| jlong num_bytes,
|
| @@ -343,18 +355,21 @@ static ScopedJavaLocalRef<jobject> Map(JNIEnv* env,
|
| return Java_CoreImpl_newResultAndBuffer(env, result, byte_buffer);
|
| }
|
|
|
| -static int Unmap(JNIEnv* env, jobject jcaller, jobject buffer) {
|
| +static int Unmap(JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + const JavaParamRef<jobject>& buffer) {
|
| void* buffer_start = env->GetDirectBufferAddress(buffer);
|
| DCHECK(buffer_start);
|
| return MojoUnmapBuffer(buffer_start);
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> AsyncWait(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle,
|
| - jint signals,
|
| - jlong deadline,
|
| - jobject callback) {
|
| +static ScopedJavaLocalRef<jobject> AsyncWait(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + jint mojo_handle,
|
| + jint signals,
|
| + jlong deadline,
|
| + const JavaParamRef<jobject>& callback) {
|
| AsyncWaitCallbackData* callback_data =
|
| new AsyncWaitCallbackData(env, jcaller, callback);
|
| MojoAsyncWaitID cancel_id;
|
| @@ -376,7 +391,7 @@ static ScopedJavaLocalRef<jobject> AsyncWait(JNIEnv* env,
|
| }
|
|
|
| static void CancelAsyncWait(JNIEnv* env,
|
| - jobject jcaller,
|
| + const JavaParamRef<jobject>& jcaller,
|
| jlong id,
|
| jlong data_ptr) {
|
| if (id == 0) {
|
| @@ -391,8 +406,8 @@ static void CancelAsyncWait(JNIEnv* env,
|
| }
|
|
|
| static jint GetNativeBufferOffset(JNIEnv* env,
|
| - jobject jcaller,
|
| - jobject buffer,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + const JavaParamRef<jobject>& buffer,
|
| jint alignment) {
|
| jint offset =
|
| reinterpret_cast<uintptr_t>(env->GetDirectBufferAddress(buffer)) %
|
| @@ -402,9 +417,10 @@ static jint GetNativeBufferOffset(JNIEnv* env,
|
| return alignment - offset;
|
| }
|
|
|
| -static ScopedJavaLocalRef<jobject> GetBufferInformation(JNIEnv* env,
|
| - jobject jcaller,
|
| - jint mojo_handle) {
|
| +static ScopedJavaLocalRef<jobject> GetBufferInformation(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& jcaller,
|
| + jint mojo_handle) {
|
| MojoBufferInformation buffer_information;
|
| MojoResult result =
|
| MojoGetBufferInformation(static_cast<MojoHandle>(mojo_handle),
|
|
|