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:
committed by
Johan Redestig
parent
75a2ae937f
commit
2c4a56af4d
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user