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