diff options
author | Dave Sparks <davidsparks@android.com> | 2009-07-10 18:13:36 -0700 |
---|---|---|
committer | Dave Sparks <davidsparks@android.com> | 2009-07-10 18:13:36 -0700 |
commit | a95f495f75d0516ad48576500f64a3ffea037af8 (patch) | |
tree | 51393ed5d0e6227181838d0b7835b924be5e2071 /core/jni/android_hardware_Camera.cpp | |
parent | cf29e116129f38309c18ba14b9893b079a712289 (diff) | |
download | frameworks_base-a95f495f75d0516ad48576500f64a3ffea037af8.zip frameworks_base-a95f495f75d0516ad48576500f64a3ffea037af8.tar.gz frameworks_base-a95f495f75d0516ad48576500f64a3ffea037af8.tar.bz2 |
Use SetByteArrayRegion to minimize copy overhead and JNI calls.
Diffstat (limited to 'core/jni/android_hardware_Camera.cpp')
-rw-r--r-- | core/jni/android_hardware_Camera.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp index b841076..2874be4 100644 --- a/core/jni/android_hardware_Camera.cpp +++ b/core/jni/android_hardware_Camera.cpp @@ -143,10 +143,7 @@ void JNICameraContext::copyAndPost(JNIEnv* env, const sp<IMemory>& dataPtr, int LOGE("Couldn't allocate byte array for JPEG data"); env->ExceptionClear(); } else { - jbyte *bytes = static_cast<jbyte*>(env->GetPrimitiveArrayCritical(obj, NULL)); - memcpy(bytes, data, size); - env->ReleasePrimitiveArrayCritical(obj, bytes, 0); - + env->SetByteArrayRegion(obj, 0, size, data); } } else { LOGE("image heap is NULL"); |