[haiku-commits] haiku: hrev50404 - src/add-ons/translators/png build/jam src/add-ons/translators/jpeg src/add-ons/translators/wonderbrush/support

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 10 Jul 2016 19:19:02 +0200 (CEST)

hrev50404 adds 4 changesets to branch 'master'
old head: be2c072556dc4df94f3ab0ec8166e3da4d5c9541
new head: ac30c586486721fcd1c553958ecd668c3e62f09e
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=ac30c5864867+%5Ebe2c072556dc

----------------------------------------------------------------------------

863a6388b4d0: JPEG translator: fix warnings and enable Werror
  
  Using setjmp and modifying local variables in the same function is not
  allowed.
  
  Fixes #12653.

1b29ad289e81: PNG translator: fix gcc2 complaining about setjmp clobbering 
variables.
  
  Fixes #12662.

9e72a18d0fd9: wonderbrush translator: fix warnings.
  
  Static variable used only in commented out code, comment it out as well.

ac30c5864867: Enable Werror for jpeg, png, wonderbrush translators.

                             [ Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

4 files changed, 21 insertions(+), 12 deletions(-)
build/jam/ArchitectureRules                          |  8 ++++----
src/add-ons/translators/jpeg/JPEGTranslator.cpp      |  7 ++-----
src/add-ons/translators/png/PNGTranslator.cpp        | 16 ++++++++++++++--
.../translators/wonderbrush/support/lab_convert.cpp  |  2 +-

############################################################################

Commit:      863a6388b4d00ad594767313b26736bc451e0b2b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=863a6388b4d0
Author:      Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date:        Sun Jul 10 16:14:58 2016 UTC

Ticket:      https://dev.haiku-os.org/ticket/12653

JPEG translator: fix warnings and enable Werror

Using setjmp and modifying local variables in the same function is not
allowed.

Fixes #12653.

----------------------------------------------------------------------------

diff --git a/src/add-ons/translators/jpeg/JPEGTranslator.cpp 
b/src/add-ons/translators/jpeg/JPEGTranslator.cpp
index e9b296d..366c5ad 100644
--- a/src/add-ons/translators/jpeg/JPEGTranslator.cpp
+++ b/src/add-ons/translators/jpeg/JPEGTranslator.cpp
@@ -764,10 +764,6 @@ JPEGTranslator::DerivedTranslate(BPositionIO* inSource,
        const translator_info* inInfo, BMessage* ioExtension, uint32 outType,
        BPositionIO* outDestination, int32 baseType)
 {
-       // If no specific type was requested, convert to the interchange format
-       if (outType == 0)
-               outType = B_TRANSLATOR_BITMAP;
-
        // Setup a "breakpoint" since throwing exceptions does not seem to work
        // at all in an add-on. (?)
        // In the be_jerror.cpp we implement a handler for critical library 
errors
@@ -788,7 +784,8 @@ JPEGTranslator::DerivedTranslate(BPositionIO* inSource,
                                && outType == JPEG_FORMAT) {
                        return Compress(inSource, outDestination, 
&longJumpBuffer);
                } else if (inInfo->type == JPEG_FORMAT
-                               && outType == B_TRANSLATOR_BITMAP) {
+                               && (outType == B_TRANSLATOR_BITMAP || outType 
== 0)) {
+                       // This is the default if no specific outType was 
requested.
                        return Decompress(inSource, outDestination, ioExtension,
                                &longJumpBuffer);
                }

############################################################################

Commit:      1b29ad289e8177cfc831e2975046852b475fd6b1
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1b29ad289e81
Author:      Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date:        Sun Jul 10 16:33:19 2016 UTC

Ticket:      https://dev.haiku-os.org/ticket/12662

PNG translator: fix gcc2 complaining about setjmp clobbering variables.

Fixes #12662.

----------------------------------------------------------------------------

diff --git a/src/add-ons/translators/png/PNGTranslator.cpp 
b/src/add-ons/translators/png/PNGTranslator.cpp
index a982ad3..cc93fb5 100644
--- a/src/add-ons/translators/png/PNGTranslator.cpp
+++ b/src/add-ons/translators/png/PNGTranslator.cpp
@@ -292,6 +292,18 @@ PNGTranslator::DerivedIdentify(BPositionIO *inSource,
        return identify_png_header(inSource, outInfo);
 }
 
+
+// Workaround for gcc2 complaining about clobbered variables when we do a
+// setjmp, even though the variables are not accessed when returning from
+// a longjmp. Moving setjmp to a different function is enough to hide the
+// problem from gcc2.
+static int
+setjmp_wrapper(jmp_buf buf)
+{
+       return setjmp(buf);
+}
+
+
 status_t
 PNGTranslator::translate_from_png_to_bits(BPositionIO *inSource,
        BPositionIO *outDestination)
@@ -322,7 +334,7 @@ PNGTranslator::translate_from_png_to_bits(BPositionIO 
*inSource,
                if (!pinfo)
                        break;
                // set error handling
-               if (setjmp(png_jmpbuf(ppng)))
+               if (setjmp_wrapper(png_jmpbuf(ppng)))
                        // When an error occurs in libpng, it uses
                        // the longjmp function to continue execution
                        // from this point
@@ -829,7 +841,7 @@ PNGTranslator::translate_from_bits_to_png(BPositionIO 
*inSource,
                        break;
                }
                // set error handling
-               if (setjmp(png_jmpbuf(ppng))) {
+               if (setjmp_wrapper(png_jmpbuf(ppng))) {
                        // When an error occurs in libpng, it uses
                        // the longjmp function to continue execution
                        // from this point

############################################################################

Commit:      9e72a18d0fd94acd2384b75b30a3ede6fad2af1c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9e72a18d0fd9
Author:      Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date:        Sun Jul 10 17:03:42 2016 UTC

wonderbrush translator: fix warnings.

Static variable used only in commented out code, comment it out as well.

----------------------------------------------------------------------------

diff --git a/src/add-ons/translators/wonderbrush/support/lab_convert.cpp 
b/src/add-ons/translators/wonderbrush/support/lab_convert.cpp
index 5da5e49..1f36488 100644
--- a/src/add-ons/translators/wonderbrush/support/lab_convert.cpp
+++ b/src/add-ons/translators/wonderbrush/support/lab_convert.cpp
@@ -43,7 +43,7 @@ init_linear_table()
 }
 
 // conversion from RGB (0...255) to linear and normalized RGB (0...1)
-static uint8* gammaTable = init_gamma_table();
+/*static uint8* gammaTable = init_gamma_table();*/
 static float* linearTable = init_linear_table();
 
 // matrix entries: XYZ -> RGB (709 RGB, D65 Whitepoint)

############################################################################

Revision:    hrev50404
Commit:      ac30c586486721fcd1c553958ecd668c3e62f09e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ac30c5864867
Author:      Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date:        Sun Jul 10 17:13:22 2016 UTC

Enable Werror for jpeg, png, wonderbrush translators.

----------------------------------------------------------------------------

diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules
index 0730e2d..1abf40c 100644
--- a/build/jam/ArchitectureRules
+++ b/build/jam/ArchitectureRules
@@ -610,19 +610,19 @@ rule ArchitectureSetupWarnings architecture
 #      EnableWerror src add-ons translators hpgs ;
        EnableWerror src add-ons translators hvif ;
        EnableWerror src add-ons translators ico ;
-#      EnableWerror src add-ons translators jpeg ; # gcc2
+       EnableWerror src add-ons translators jpeg ;
        EnableWerror src add-ons translators jpeg2000 ;
        EnableWerror src add-ons translators pcx ;
-#      EnableWerror src add-ons translators png ; # gcc2
+       EnableWerror src add-ons translators png ;
        EnableWerror src add-ons translators ppm ;
        EnableWerror src add-ons translators raw ;
        EnableWerror src add-ons translators rtf ;
        EnableWerror src add-ons translators sgi ;
        EnableWerror src add-ons translators shared ;
-#      EnableWerror src add-ons translators stxt ;
+       EnableWerror src add-ons translators stxt ;
        EnableWerror src add-ons translators tga ;
        EnableWerror src add-ons translators tiff ;
-#      EnableWerror src add-ons translators wonderbrush ;
+       EnableWerror src add-ons translators wonderbrush ;
        EnableWerror src add-ons print ;
        EnableWerror src bin desklink ;
        EnableWerror src bin multiuser ;


Other related posts:

  • » [haiku-commits] haiku: hrev50404 - src/add-ons/translators/png build/jam src/add-ons/translators/jpeg src/add-ons/translators/wonderbrush/support - pulkomandy