From 516236818d2b26b0322878d19c0401e1c1226ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 1 Jul 2007 22:59:11 +0000 Subject: [PATCH] * Fixed two crashing bugs I introduced in JPEG compression code in r20635. * Also broke big endian 32 to 24 bit conversion. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21539 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/translators/jpeg/JPEGTranslator.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/add-ons/translators/jpeg/JPEGTranslator.cpp b/src/add-ons/translators/jpeg/JPEGTranslator.cpp index 14014c2f8f..fbf873c2aa 100644 --- a/src/add-ons/translators/jpeg/JPEGTranslator.cpp +++ b/src/add-ons/translators/jpeg/JPEGTranslator.cpp @@ -370,6 +370,8 @@ convert_from_24_to_24(uint8* in, uint8* out, int32 inRowBytes) inline void convert_from_32_to_24(uint8* in, uint8* out, int32 inRowBytes) { + inRowBytes /= 4; + for (int32 i = 0; i < inRowBytes; i++) { out[0] = in[2]; out[1] = in[1]; @@ -384,10 +386,12 @@ convert_from_32_to_24(uint8* in, uint8* out, int32 inRowBytes) inline void convert_from_32b_to_24(uint8* in, uint8* out, int32 inRowBytes) { + inRowBytes /= 4; + for (int32 i = 0; i < inRowBytes; i++) { - out[1] = in[0]; - out[2] = in[1]; - out[3] = in[2]; + out[0] = in[1]; + out[1] = in[2]; + out[2] = in[3]; in += 4; out += 3;