diff options
| author | 2023-02-16 21:53:50 -0500 | |
|---|---|---|
| committer | 2023-02-17 16:15:53 +0000 | |
| commit | 9eb7779ae052d2566268b81e884f243d65ecbb7d (patch) | |
| tree | a3f22f5e68fdae85cb0dfdc362c4063a6a41d1aa | |
| parent | 79d1135cb8913dbbb4e87e2d324394e830fc8165 (diff) | |
Fix null deref & update compress
Gainmap ctor always sets the native bitmap properly,
avoids potential confusion over mGainmapContents vs.
native bitmap pointer
Also call the fancier newer compress function
Test: SilkFX
Bug: 266628247
Change-Id: I89728a66202b4cdad54e8f163bc04dc419b8187b
| -rw-r--r-- | graphics/java/android/graphics/Gainmap.java | 2 | ||||
| -rw-r--r-- | libs/hwui/hwui/Bitmap.cpp | 2 | ||||
| -rw-r--r-- | tests/SilkFX/assets/gainmaps/granddam.jpg | bin | 0 -> 1830308 bytes | |||
| -rw-r--r-- | tests/SilkFX/assets/gainmaps/lightbulb.jpg | bin | 0 -> 2757109 bytes | |||
| -rw-r--r-- | tests/SilkFX/assets/gainmaps/porsche911.jpg | bin | 0 -> 2869087 bytes |
5 files changed, 2 insertions, 2 deletions
diff --git a/graphics/java/android/graphics/Gainmap.java b/graphics/java/android/graphics/Gainmap.java index 470a06c1f1f5..a7c508c75ac9 100644 --- a/graphics/java/android/graphics/Gainmap.java +++ b/graphics/java/android/graphics/Gainmap.java @@ -96,8 +96,8 @@ public final class Gainmap implements Parcelable { throw new RuntimeException("internal error: native gainmap is 0"); } - mGainmapContents = gainmapContents; mNativePtr = nativeGainmap; + setGainmapContents(gainmapContents); NoImagePreloadHolder.sRegistry.registerNativeAllocation(this, nativeGainmap); } diff --git a/libs/hwui/hwui/Bitmap.cpp b/libs/hwui/hwui/Bitmap.cpp index cbebae9ed438..ecf6cfc05444 100644 --- a/libs/hwui/hwui/Bitmap.cpp +++ b/libs/hwui/hwui/Bitmap.cpp @@ -464,7 +464,7 @@ bool Bitmap::compress(JavaCompressFormat format, int32_t quality, SkWStream* str SkBitmap baseBitmap = getSkBitmap(); SkBitmap gainmapBitmap = gainmap()->bitmap->getSkBitmap(); SkJpegEncoder::Options options{.fQuality = quality}; - return SkJpegGainmapEncoder::EncodeJpegR(stream, baseBitmap.pixmap(), options, + return SkJpegGainmapEncoder::EncodeHDRGM(stream, baseBitmap.pixmap(), options, gainmapBitmap.pixmap(), options, gainmap()->info); } #endif diff --git a/tests/SilkFX/assets/gainmaps/granddam.jpg b/tests/SilkFX/assets/gainmaps/granddam.jpg Binary files differnew file mode 100644 index 000000000000..823f14efcbb2 --- /dev/null +++ b/tests/SilkFX/assets/gainmaps/granddam.jpg diff --git a/tests/SilkFX/assets/gainmaps/lightbulb.jpg b/tests/SilkFX/assets/gainmaps/lightbulb.jpg Binary files differnew file mode 100644 index 000000000000..232c5f0937df --- /dev/null +++ b/tests/SilkFX/assets/gainmaps/lightbulb.jpg diff --git a/tests/SilkFX/assets/gainmaps/porsche911.jpg b/tests/SilkFX/assets/gainmaps/porsche911.jpg Binary files differnew file mode 100644 index 000000000000..50f4fc83910e --- /dev/null +++ b/tests/SilkFX/assets/gainmaps/porsche911.jpg |