diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-02 01:27:06 -0700 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2009-06-02 01:27:06 -0700 |
| commit | 385a4894d0bd4f98e3991c3850afc5bae47e10ea (patch) | |
| tree | d796b5df2b3681df80d9bdd82fb91334268ab7ee | |
| parent | cf2924efa0914e57c9d1cf3de4943ec969a8f3fd (diff) | |
| parent | 4ff42ad6d7218b89435424b53951c1bdb8ef6b8b (diff) | |
| download | frameworks_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.cpp | 8 |
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); |
