Add try catch around bitmap creation
Logging errors instead
of crashing the browser, for now.
Change-Id: Ib3e8186f5e5392c4e26a6b757c6b6c2814a2ec92
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 15994ca..b627994 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -380,21 +380,31 @@
// Scale the badge
float fx = (float) srcOverlay.getWidth() * overlayScaleFactor;
float fy = (float) srcOverlay.getHeight() * overlayScaleFactor;
- Bitmap scaledOverlay = Bitmap.createScaledBitmap(srcOverlay, (int) fx, (int) fy, true);
+ Bitmap scaledOverlay = null;
+ try {
+ scaledOverlay = Bitmap.createScaledBitmap(srcOverlay, (int) fx, (int) fy, true);
+ } catch (IllegalArgumentException exception) {
+ Log.e(TAG, "Scaled bitmap creation failed" + exception.getMessage());
+ }
+
if (scaledOverlay == null) {
srcOverlay.recycle();
Runtime.getRuntime().gc();
- Log.e(TAG, "Scaled bitmap creation failed");
return origImage;
}
// Create the bitmap we are compositing into
- Bitmap overlaid = Bitmap.createBitmap(origWidth, origHeight, Bitmap.Config.ARGB_8888);
+ Bitmap overlaid = null;
+ try {
+ overlaid = Bitmap.createBitmap(origWidth, origHeight, Bitmap.Config.ARGB_8888);
+ } catch (IllegalArgumentException exception) {
+ Log.e(TAG, "Composite bitmap creation failed" + exception.getMessage());
+ }
+
if (overlaid == null) {
srcOverlay.recycle();
scaledOverlay.recycle();
Runtime.getRuntime().gc();
- Log.e(TAG, "Composite bitmap creation failed");
return origImage;
}