OSDN Git Service

Remove user of GraphicsJNI::createBitmap
authorJohn Reck <jreck@google.com>
Fri, 10 Apr 2015 20:35:27 +0000 (13:35 -0700)
committerJohn Reck <jreck@google.com>
Fri, 10 Apr 2015 20:35:27 +0000 (13:35 -0700)
Change-Id: I2f31bf98ed08eb4bd39a6ce7236c7a23ef309177

core/jni/android/graphics/BitmapFactory.cpp
core/jni/android/graphics/BitmapFactory.h
core/jni/android_emoji_EmojiFactory.cpp

index 526885f..4c4a39d 100644 (file)
@@ -543,6 +543,11 @@ static jboolean nativeIsSeekable(JNIEnv* env, jobject, jobject fileDescriptor) {
     return ::lseek64(descriptor, 0, SEEK_CUR) != -1 ? JNI_TRUE : JNI_FALSE;
 }
 
+jobject decodeBitmap(JNIEnv* env, void* data, size_t size) {
+    SkMemoryStream  stream(data, size);
+    return doDecode(env, &stream, NULL, NULL);
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 
 static JNINativeMethod gMethods[] = {
index a54da43..22a955f 100644 (file)
@@ -21,4 +21,6 @@ extern jfieldID gOptions_bitmapFieldID;
 
 jstring getMimeTypeString(JNIEnv* env, SkImageDecoder::Format format);
 
+jobject decodeBitmap(JNIEnv* env, void* data, size_t size);
+
 #endif  // _ANDROID_GRAPHICS_BITMAP_FACTORY_H_
index 655b400..e9f18a6 100644 (file)
@@ -5,6 +5,7 @@
 #include <utils/Log.h>
 #include <ScopedUtfChars.h>
 
+#include "BitmapFactory.h"
 #include "EmojiFactory.h"
 #include "GraphicsJNI.h"
 #include <nativehelper/JNIHelp.h>
@@ -164,14 +165,7 @@ static jobject android_emoji_EmojiFactory_getBitmapFromAndroidPua(
     return NULL;
   }
 
-  SkBitmap *bitmap = new SkBitmap;
-  if (!SkImageDecoder::DecodeMemory(bytes, size, bitmap)) {
-    ALOGE("SkImageDecoder::DecodeMemory() failed.");
-    return NULL;
-  }
-
-  return GraphicsJNI::createBitmap(env, bitmap,
-      GraphicsJNI::kBitmapCreateFlag_Premultiplied, NULL);
+  return decodeBitmap(env, (void*)bytes, size);
 }
 
 static void android_emoji_EmojiFactory_destructor(