From c54bd44790ee74f86cbec7edcba4a1d3ea31101c Mon Sep 17 00:00:00 2001 From: "jiin.moon" Date: Fri, 19 Aug 2016 12:09:31 +0900 Subject: [PATCH] emile: fix jpeg loader broken with orientation Summary: After applying a patch regarding region, side-effect detected. Fixes T4390 Test Plan: make check Reviewers: jpeg, cedric, jypark Maniphest Tasks: T4390 Differential Revision: https://phab.enlightenment.org/D4245 --- src/lib/emile/emile_image.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/lib/emile/emile_image.c b/src/lib/emile/emile_image.c index 7c1db48a07..c7baff8ea1 100644 --- a/src/lib/emile/emile_image.c +++ b/src/lib/emile/emile_image.c @@ -1731,22 +1731,6 @@ _emile_jpeg_data(Emile_Image *image, { region = 1; - if (prop->rotated) - { - unsigned int load_region_x = 0, load_region_y = 0; - unsigned int load_region_w = 0, load_region_h = 0; - - load_region_x = opts->region.x; - load_region_y = opts->region.y; - load_region_w = opts->region.w; - load_region_h = opts->region.h; - _rotate_region(&opts_region.x, &opts_region.y, - &opts_region.w, &opts_region.h, - load_region_x, load_region_y, - load_region_w, load_region_h, - w, h, degree, prop->flipped); - } - /* scale value already applied when decompress. When access to decoded image, have to apply scale value to region value */ if (prop->scale > 1) @@ -1765,6 +1749,23 @@ _emile_jpeg_data(Emile_Image *image, opts_region.h = opts->region.h; } + + if (prop->rotated) + { + unsigned int load_region_x = 0, load_region_y = 0; + unsigned int load_region_w = 0, load_region_h = 0; + + load_region_x = opts_region.x; + load_region_y = opts_region.y; + load_region_w = opts_region.w; + load_region_h = opts_region.h; + _rotate_region(&opts_region.x, &opts_region.y, + &opts_region.w, &opts_region.h, + load_region_x, load_region_y, + load_region_w, load_region_h, + w, h, degree, prop->flipped); + } + } if ((!region) && ((w != ie_w) || (h != ie_h))) {