Make sure OutOfMemoryError is handled by WallpaperManager

Make sure exception OutOfMemoryError is handled when calling
BitmapFactory.decodeFileDescriptor and BitmapFactory.decodeStream
to avoid crash in the system server.

Change-Id: I954a6388d1225dab86d2617ab0602154b2a7f493
This commit is contained in:
Johan Alfven
2010-09-02 14:26:54 +02:00
committed by Johan Redestig
parent 75a2ae937f
commit 2c4a56af4d

View File

@@ -235,8 +235,13 @@ public class WallpaperManager {
if (width <= 0 || height <= 0) {
// Degenerate case: no size requested, just load
// bitmap as-is.
Bitmap bm = BitmapFactory.decodeFileDescriptor(
fd.getFileDescriptor(), null, null);
Bitmap bm = null;
try {
bm = BitmapFactory.decodeFileDescriptor(
fd.getFileDescriptor(), null, null);
} catch (OutOfMemoryError e) {
Log.w(TAG, "Can't decode file", e);
}
try {
fd.close();
} catch (IOException e) {
@@ -277,7 +282,12 @@ public class WallpaperManager {
if (width <= 0 || height <= 0) {
// Degenerate case: no size requested, just load
// bitmap as-is.
Bitmap bm = BitmapFactory.decodeStream(is, null, null);
Bitmap bm = null;
try {
bm = BitmapFactory.decodeStream(is, null, null);
} catch (OutOfMemoryError e) {
Log.w(TAG, "Can't decode stream", e);
}
try {
is.close();
} catch (IOException e) {