diff options
| author | 2024-02-13 13:51:28 +0000 | |
|---|---|---|
| committer | 2024-02-13 13:51:28 +0000 | |
| commit | e30d2a6184f53361801a28ad2eee80329ecb7328 (patch) | |
| tree | 50e4a6808cd056d152d92bed798e9a5f2fffd174 /graphics/java/android | |
| parent | 732ee7053c65e80f5d3082a38b52e9c2e0338035 (diff) | |
| parent | 48165939b653afe03215859666f01e7bdd667c9f (diff) | |
Merge "Use a file descriptor in decodeFile." into main am: 48165939b6
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2954955
Change-Id: Iff08dac7df6a64ca57de4be4e015adb6ad65f611
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'graphics/java/android')
| -rw-r--r-- | graphics/java/android/graphics/BitmapFactory.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/graphics/java/android/graphics/BitmapFactory.java b/graphics/java/android/graphics/BitmapFactory.java index 1da8e189d768..d915b746e0cc 100644 --- a/graphics/java/android/graphics/BitmapFactory.java +++ b/graphics/java/android/graphics/BitmapFactory.java @@ -25,10 +25,13 @@ import android.content.res.AssetManager; import android.content.res.Resources; import android.os.Build; import android.os.Trace; +import android.system.OsConstants; import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; +import libcore.io.IoBridge; + import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.IOException; @@ -523,19 +526,19 @@ public class BitmapFactory { public static Bitmap decodeFile(String pathName, Options opts) { validate(opts); Bitmap bm = null; - InputStream stream = null; + FileDescriptor fd = null; try { - stream = new FileInputStream(pathName); - bm = decodeStream(stream, null, opts); + fd = IoBridge.open(pathName, OsConstants.O_RDONLY); + bm = decodeFileDescriptor(fd, null, opts); } catch (Exception e) { /* do nothing. If the exception happened on open, bm will be null. */ - Log.e("BitmapFactory", "Unable to decode stream: " + e); + Log.e("BitmapFactory", "Unable to decode file: " + e); } finally { - if (stream != null) { + if (fd != null) { try { - stream.close(); + IoBridge.closeAndSignalBlockedThreads(fd); } catch (IOException e) { // do nothing here } |