mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-26 13:48:21 +01:00
Fix a Wxor-used-as-pow false positive
Since people seem to write "2 ^ X" hoping that it means "1 << X", clang recently added a warning for this pattern. It incorrectly fires on this file. To suppress it, restructure the code to be less clever. (Alternatively we could use "xor" instead of "^" or write "0x2" instead of "2" but both seem worse.) No intended behavior change. Bug: chromium:995200 Change-Id: I64744345be5f5a8cd1f4aaeaf0982da239b378a7
This commit is contained in:
parent
601ef17cf6
commit
af650c0bd2
@ -29,11 +29,15 @@
|
|||||||
#define USE_INVERSE_ALPHA_TABLE
|
#define USE_INVERSE_ALPHA_TABLE
|
||||||
|
|
||||||
#ifdef WORDS_BIGENDIAN
|
#ifdef WORDS_BIGENDIAN
|
||||||
#define ALPHA_OFFSET 0 // uint32_t 0xff000000 is 0xff,00,00,00 in memory
|
// uint32_t 0xff000000 is 0xff,00,00,00 in memory
|
||||||
|
#define CHANNEL_OFFSET(i) (i)
|
||||||
#else
|
#else
|
||||||
#define ALPHA_OFFSET 3 // uint32_t 0xff000000 is 0x00,00,00,ff in memory
|
// uint32_t 0xff000000 is 0x00,00,00,ff in memory
|
||||||
|
#define CHANNEL_OFFSET(i) (3-(i))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define ALPHA_OFFSET CHANNEL_OFFSET(0)
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Detection of non-trivial transparency
|
// Detection of non-trivial transparency
|
||||||
|
|
||||||
@ -997,10 +1001,10 @@ static int PictureARGBToYUVA(WebPPicture* picture, WebPEncCSP colorspace,
|
|||||||
return WebPEncodingSetError(picture, VP8_ENC_ERROR_INVALID_CONFIGURATION);
|
return WebPEncodingSetError(picture, VP8_ENC_ERROR_INVALID_CONFIGURATION);
|
||||||
} else {
|
} else {
|
||||||
const uint8_t* const argb = (const uint8_t*)picture->argb;
|
const uint8_t* const argb = (const uint8_t*)picture->argb;
|
||||||
const uint8_t* const a = argb + (0 ^ ALPHA_OFFSET);
|
const uint8_t* const a = argb + CHANNEL_OFFSET(0);
|
||||||
const uint8_t* const r = argb + (1 ^ ALPHA_OFFSET);
|
const uint8_t* const r = argb + CHANNEL_OFFSET(1);
|
||||||
const uint8_t* const g = argb + (2 ^ ALPHA_OFFSET);
|
const uint8_t* const g = argb + CHANNEL_OFFSET(2);
|
||||||
const uint8_t* const b = argb + (3 ^ ALPHA_OFFSET);
|
const uint8_t* const b = argb + CHANNEL_OFFSET(3);
|
||||||
|
|
||||||
picture->colorspace = WEBP_YUV420;
|
picture->colorspace = WEBP_YUV420;
|
||||||
return ImportYUVAFromRGBA(r, g, b, a, 4, 4 * picture->argb_stride,
|
return ImportYUVAFromRGBA(r, g, b, a, 4, 4 * picture->argb_stride,
|
||||||
|
Loading…
Reference in New Issue
Block a user