diff options
Diffstat (limited to 'Source/WebKit/android/jni/WebIconDatabase.cpp')
-rw-r--r-- | Source/WebKit/android/jni/WebIconDatabase.cpp | 57 |
1 files changed, 22 insertions, 35 deletions
diff --git a/Source/WebKit/android/jni/WebIconDatabase.cpp b/Source/WebKit/android/jni/WebIconDatabase.cpp index e9219df..d5f8947 100644 --- a/Source/WebKit/android/jni/WebIconDatabase.cpp +++ b/Source/WebKit/android/jni/WebIconDatabase.cpp @@ -50,31 +50,18 @@ namespace android { -SkBitmap* webcoreImageToSkBitmap(WebCore::Image* icon) +jobject webcoreImageToJavaBitmap(JNIEnv* env, WebCore::Image* icon) { if (!icon) - return 0; + return NULL; + SkBitmap bm; WebCore::SharedBuffer* buffer = icon->data(); - if (!buffer) - return 0; - SkBitmap* bm = new SkBitmap; - if (!SkImageDecoder::DecodeMemory(buffer->data(), buffer->size(), bm, - SkBitmap::kNo_Config, - SkImageDecoder::kDecodePixels_Mode) - || bm->isNull() || !bm->width() || !bm->height() - || bm->config() == SkBitmap::kNo_Config) { - delete bm; - return 0; - } - return bm; -} + if (!buffer || !SkImageDecoder::DecodeMemory(buffer->data(), buffer->size(), + &bm, SkBitmap::kNo_Config, + SkImageDecoder::kDecodePixels_Mode)) + return NULL; -jobject webcoreImageToJavaBitmap(JNIEnv* env, WebCore::Image* icon) -{ - SkBitmap* bm = webcoreImageToSkBitmap(icon); - if (!bm) - return 0; - return GraphicsJNI::createBitmap(env, bm, false, NULL); + return GraphicsJNI::createBitmap(env, new SkBitmap(bm), false, NULL); } static WebIconDatabase* gIconDatabaseClient = new WebIconDatabase(); @@ -181,7 +168,7 @@ static void Open(JNIEnv* env, jobject obj, jstring path) return; iconDb.setEnabled(true); iconDb.setClient(gIconDatabaseClient); - ALOG_ASSERT(path, "No path given to nativeOpen"); + LOG_ASSERT(path, "No path given to nativeOpen"); WTF::String pathStr = jstringToWtfString(env, path); WTF::CString fullPath = WebCore::pathByAppendingComponent(pathStr, WebCore::IconDatabase::defaultDatabaseFilename()).utf8(); @@ -198,12 +185,12 @@ static void Open(JNIEnv* env, jobject obj, jstring path) } } if (didSetPermissions) { - ALOGV("Opening WebIconDatabase file '%s'", pathStr.latin1().data()); + LOGV("Opening WebIconDatabase file '%s'", pathStr.latin1().data()); bool res = iconDb.open(pathStr, WebCore::IconDatabase::defaultDatabaseFilename()); if (!res) - ALOGE("Open failed!"); + LOGE("Open failed!"); } else - ALOGE("Failed to set permissions on '%s'", fullPath.data()); + LOGE("Failed to set permissions on '%s'", fullPath.data()); } static void Close(JNIEnv* env, jobject obj) @@ -213,37 +200,37 @@ static void Close(JNIEnv* env, jobject obj) static void RemoveAllIcons(JNIEnv* env, jobject obj) { - ALOGV("Removing all icons"); + LOGV("Removing all icons"); WebCore::iconDatabase().removeAllIcons(); } static jobject IconForPageUrl(JNIEnv* env, jobject obj, jstring url) { - ALOG_ASSERT(url, "No url given to iconForPageUrl"); + LOG_ASSERT(url, "No url given to iconForPageUrl"); WTF::String urlStr = jstringToWtfString(env, url); // FIXME: This method should not be used from outside WebCore and will be removed. // http://trac.webkit.org/changeset/81484 WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(urlStr, WebCore::IntSize(16, 16)); - ALOGV("Retrieving icon for '%s' %p", urlStr.latin1().data(), icon); + LOGV("Retrieving icon for '%s' %p", urlStr.latin1().data(), icon); return webcoreImageToJavaBitmap(env, icon); } static void RetainIconForPageUrl(JNIEnv* env, jobject obj, jstring url) { - ALOG_ASSERT(url, "No url given to retainIconForPageUrl"); + LOG_ASSERT(url, "No url given to retainIconForPageUrl"); WTF::String urlStr = jstringToWtfString(env, url); - ALOGV("Retaining icon for '%s'", urlStr.latin1().data()); + LOGV("Retaining icon for '%s'", urlStr.latin1().data()); WebCore::iconDatabase().retainIconForPageURL(urlStr); } static void ReleaseIconForPageUrl(JNIEnv* env, jobject obj, jstring url) { - ALOG_ASSERT(url, "No url given to releaseIconForPageUrl"); + LOG_ASSERT(url, "No url given to releaseIconForPageUrl"); WTF::String urlStr = jstringToWtfString(env, url); - ALOGV("Releasing icon for '%s'", urlStr.latin1().data()); + LOGV("Releasing icon for '%s'", urlStr.latin1().data()); WebCore::iconDatabase().releaseIconForPageURL(urlStr); } @@ -268,12 +255,12 @@ static JNINativeMethod gWebIconDatabaseMethods[] = { int registerWebIconDatabase(JNIEnv* env) { #ifndef NDEBUG - jclass webIconDatabase = env->FindClass("android/webkit/WebIconDatabaseClassic"); - ALOG_ASSERT(webIconDatabase, "Unable to find class android.webkit.WebIconDatabaseClassic"); + jclass webIconDatabase = env->FindClass("android/webkit/WebIconDatabase"); + LOG_ASSERT(webIconDatabase, "Unable to find class android.webkit.WebIconDatabase"); env->DeleteLocalRef(webIconDatabase); #endif - return jniRegisterNativeMethods(env, "android/webkit/WebIconDatabaseClassic", + return jniRegisterNativeMethods(env, "android/webkit/WebIconDatabase", gWebIconDatabaseMethods, NELEM(gWebIconDatabaseMethods)); } |