Skip to content

Commit

Permalink
Import: extract condition from loop
Browse files Browse the repository at this point in the history
do_copy is a loop invariant, but based on a variable parameter; it would
only be extracted if Import was inlined.

Change-Id: Id5b4a1a4a83a4f2083444da4934e4c994df65b44
  • Loading branch information
jzern committed Feb 17, 2018
1 parent 3b07d32 commit 1e3dfc4
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions src/enc/picture_csp_enc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1110,10 +1110,14 @@ static int Import(WebPPicture* const picture,
uint32_t* dst = picture->argb;
const int do_copy = (ALPHA_OFFSET == 3) && swap_rb;
assert(step == 4);
for (y = 0; y < height; ++y) {
if (do_copy) {
if (do_copy) {
for (y = 0; y < height; ++y) {
memcpy(dst, rgb, width * 4);
} else {
rgb += rgb_stride;
dst += picture->argb_stride;
}
} else {
for (y = 0; y < height; ++y) {
#ifdef WORDS_BIGENDIAN
// BGRA or RGBA input order.
const uint8_t* a_ptr = rgb + 3;
Expand All @@ -1125,9 +1129,9 @@ static int Import(WebPPicture* const picture,
// RGBA input order. Need to swap R and B.
VP8LConvertBGRAToRGBA((const uint32_t*)rgb, width, (uint8_t*)dst);
#endif
rgb += rgb_stride;
dst += picture->argb_stride;
}
rgb += rgb_stride;
dst += picture->argb_stride;
}
} else {
uint32_t* dst = picture->argb;
Expand Down

0 comments on commit 1e3dfc4

Please sign in to comment.