From 8ab1b6f8bcc41aea038f63e82a7a2f3a0a88fcd7 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Thu, 8 Jun 2017 18:24:25 -0700 Subject: [PATCH] Fix CTS : BitmapRGBAF16Test#testSetPixel failure Don't grab a pointer to a temporary object on the stack! Bug: 62458021 Test: CtsGraphicsTestCase Change-Id: Ic9662e76c9064b3f3af6f8a4534d2ef56f9c5eea --- core/jni/android/graphics/Bitmap.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp index fdb19121846b7..be8b9de478692 100755 --- a/core/jni/android/graphics/Bitmap.cpp +++ b/core/jni/android/graphics/Bitmap.cpp @@ -328,11 +328,12 @@ static void FromColor_F16_Raw(void* dst, const SkColor src[], int width, uint64_t* d = (uint64_t*)dst; for (int i = 0; i < width; i++) { - const float* color = SkColor4f::FromColor(*src++).vec(); + const SkColor4f color = SkColor4f::FromColor(*src++); uint16_t* scratch = reinterpret_cast(d++); - for (int i = 0; i < 4; ++i) { - scratch[i] = SkFloatToHalf(color[i]); - } + scratch[0] = SkFloatToHalf(color.fR); + scratch[1] = SkFloatToHalf(color.fG); + scratch[2] = SkFloatToHalf(color.fB); + scratch[3] = SkFloatToHalf(color.fA); } }