Merge "Fix a initialization bug in BitmapRegionDecoder."

This commit is contained in:
Owen Lin
2010-09-29 22:57:08 -07:00
committed by Android (Google) Code Review

View File

@@ -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));
}