summaryrefslogtreecommitdiffstats
path: root/core/jni/android_hardware_Camera.cpp
diff options
context:
space:
mode:
authorDave Sparks <davidsparks@android.com>2009-07-10 18:13:36 -0700
committerDave Sparks <davidsparks@android.com>2009-07-10 18:13:36 -0700
commita95f495f75d0516ad48576500f64a3ffea037af8 (patch)
tree51393ed5d0e6227181838d0b7835b924be5e2071 /core/jni/android_hardware_Camera.cpp
parentcf29e116129f38309c18ba14b9893b079a712289 (diff)
downloadframeworks_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.cpp5
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");