diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings index 2c4e34d1a..74e6634b2 100644 --- a/build/configure.ac.warnings +++ b/build/configure.ac.warnings @@ -11,16 +11,17 @@ dnl MAYBE_WARN in an ignorable way (like adding whitespace) # -Wlogical-op causes too much noise from strcmp("literal", str) MAYBE_WARN="-Wall -Wextra \ --Wold-style-definition -Wdeclaration-after-statement \ -Wmissing-declarations -Werror-implicit-function-declaration \ --Wnested-externs -Wpointer-arith -Wwrite-strings \ --Wsign-compare -Wstrict-prototypes -Wmissing-prototypes \ --Wpacked -Wswitch-enum -Wmissing-format-attribute \ --Wbad-function-cast -Wvolatile-register-var \ +-Wpointer-arith -Wwrite-strings -Wsign-compare -Wpacked +-Wswitch-enum -Wmissing-format-attribute -Wvolatile-register-var \ -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations \ -Wno-missing-field-initializers -Wno-unused-parameter \ -Wno-attributes -Wno-long-long -Winline" +MAYBE_C_SPECIFIC_WARN="-Wold-style-definition \ +-Wdeclaration-after-statement -Wstrict-prototypes \ +-Wmissing-prototypes -Wbad-function-cast -Wnested-externs" + # New -Wno options should be added here # gcc-4.4 and later accept every -Wno- option but may complain later that this # option is unknow each time another warning happen. @@ -66,7 +67,7 @@ AC_CACHE_CHECK([for supported warning flags], cairo_cv_warn_cflags, [ CAIRO_CC_TRY_FLAG([-W$W -Wno-$W],, [WARN_CFLAGS="$WARN_CFLAGS -Wno-$W"]) done cairo_cv_warn_cflags=$WARN_CFLAGS - cairo_cv_warn_maybe=$MAYBE_WARN + cairo_cv_warn_maybe="$MAYBE_WARN $MAYBE_C_SPECIFIC_WARN" AC_MSG_CHECKING([which warning flags were supported]) ]) diff --git a/src/cairo-qt-surface.cpp b/src/cairo-qt-surface.cpp index ce05dba7e..8a919840f 100644 --- a/src/cairo-qt-surface.cpp +++ b/src/cairo-qt-surface.cpp @@ -306,6 +306,8 @@ _qimage_format_from_cairo_format (cairo_format_t fmt) #else return QImage::Format_MonoLSB; #endif + case CAIRO_FORMAT_RGB30: + return QImage::Format_Mono; } return QImage::Format_Mono; @@ -386,7 +388,7 @@ _cairo_path_to_qpainterpath_close_path (void *closure) return CAIRO_STATUS_SUCCESS; } -static inline QPainterPath +static QPainterPath path_to_qt (const cairo_path_fixed_t *path, const cairo_matrix_t *ctm_inverse = NULL) { @@ -849,7 +851,8 @@ _cairo_qt_surface_set_clip (cairo_qt_surface_t *qs, */ struct PatternToBrushConverter { - PatternToBrushConverter (const cairo_pattern_t *pattern) : + PatternToBrushConverter (const cairo_pattern_t *pattern) + __attribute__ ((noinline)) : mAcquiredImageParent(0), mAcquiredImage(0), mAcquiredImageExtra(0) @@ -1048,7 +1051,7 @@ struct PatternToBrushConverter { } } - ~PatternToBrushConverter () { + ~PatternToBrushConverter () __attribute__ ((noinline)){ if (mAcquiredImageParent) _cairo_surface_release_source_image (mAcquiredImageParent, mAcquiredImage, mAcquiredImageExtra); }