summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOwen Lin <owenlin@google.com>2010-09-29 22:57:08 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-09-29 22:57:08 -0700
commita9164cbb3092d4edebd9f20e7da533e169e8d3c6 (patch)
treef29c132f6bf3e55c96c49163b811be6663c6316a
parent8ff07224535602884e5e92b954bb3e38b67c7c19 (diff)
parent0ab9851308c02928c34e7261c4d4521c07e64f0e (diff)
downloadframeworks_base-a9164cbb3092d4edebd9f20e7da533e169e8d3c6.zip
frameworks_base-a9164cbb3092d4edebd9f20e7da533e169e8d3c6.tar.gz
frameworks_base-a9164cbb3092d4edebd9f20e7da533e169e8d3c6.tar.bz2
Merge "Fix a initialization bug in BitmapRegionDecoder."
-rw-r--r--core/jni/android/graphics/BitmapRegionDecoder.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/core/jni/android/graphics/BitmapRegionDecoder.cpp b/core/jni/android/graphics/BitmapRegionDecoder.cpp
index 4503852..f700791 100644
--- a/core/jni/android/graphics/BitmapRegionDecoder.cpp
+++ b/core/jni/android/graphics/BitmapRegionDecoder.cpp
@@ -297,9 +297,25 @@ static JNINativeMethod gBitmapRegionDecoderMethods[] = {
#define kClassPathName "android/graphics/BitmapRegionDecoder"
+static jclass make_globalref(JNIEnv* env, const char classname[]) {
+ jclass c = env->FindClass(classname);
+ SkASSERT(c);
+ return (jclass)env->NewGlobalRef(c);
+}
+
+static jfieldID getFieldIDCheck(JNIEnv* env, jclass clazz,
+ const char fieldname[], const char type[]) {
+ jfieldID id = env->GetFieldID(clazz, fieldname, type);
+ SkASSERT(id);
+ return id;
+}
+
int register_android_graphics_BitmapRegionDecoder(JNIEnv* env);
int register_android_graphics_BitmapRegionDecoder(JNIEnv* env)
{
+
+ gFileDescriptor_class = make_globalref(env, "java/io/FileDescriptor");
+ gFileDescriptor_descriptor = getFieldIDCheck(env, gFileDescriptor_class, "descriptor", "I");
return android::AndroidRuntime::registerNativeMethods(env, kClassPathName,
gBitmapRegionDecoderMethods, SK_ARRAY_COUNT(gBitmapRegionDecoderMethods));
}