summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-06-02 01:27:06 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-06-02 01:27:06 -0700
commit385a4894d0bd4f98e3991c3850afc5bae47e10ea (patch)
treed796b5df2b3681df80d9bdd82fb91334268ab7ee
parentcf2924efa0914e57c9d1cf3de4943ec969a8f3fd (diff)
parent4ff42ad6d7218b89435424b53951c1bdb8ef6b8b (diff)
downloadframeworks_base-385a4894d0bd4f98e3991c3850afc5bae47e10ea.zip
frameworks_base-385a4894d0bd4f98e3991c3850afc5bae47e10ea.tar.gz
frameworks_base-385a4894d0bd4f98e3991c3850afc5bae47e10ea.tar.bz2
am 4ff42ad6: Merge change 2843 into donut
Merge commit '4ff42ad6d7218b89435424b53951c1bdb8ef6b8b' * commit '4ff42ad6d7218b89435424b53951c1bdb8ef6b8b': Use JNI region calls in MemoryFile read and write.
-rw-r--r--core/jni/android_os_MemoryFile.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/core/jni/android_os_MemoryFile.cpp b/core/jni/android_os_MemoryFile.cpp
index 9450e15..6c16150 100644
--- a/core/jni/android_os_MemoryFile.cpp
+++ b/core/jni/android_os_MemoryFile.cpp
@@ -82,9 +82,7 @@ static jint android_os_MemoryFile_read(JNIEnv* env, jobject clazz,
return -1;
}
- jbyte* bytes = env->GetByteArrayElements(buffer, 0);
- memcpy(bytes + destOffset, (const char *)address + srcOffset, count);
- env->ReleaseByteArrayElements(buffer, bytes, 0);
+ env->SetByteArrayRegion(buffer, destOffset, count, (const jbyte *)address + srcOffset);
if (unpinned) {
ashmem_unpin_region(fd, 0, 0);
@@ -103,9 +101,7 @@ static jint android_os_MemoryFile_write(JNIEnv* env, jobject clazz,
return -1;
}
- jbyte* bytes = env->GetByteArrayElements(buffer, 0);
- memcpy((char *)address + destOffset, bytes + srcOffset, count);
- env->ReleaseByteArrayElements(buffer, bytes, 0);
+ env->GetByteArrayRegion(buffer, srcOffset, count, (jbyte *)address + destOffset);
if (unpinned) {
ashmem_unpin_region(fd, 0, 0);