Skip to content

Commit

Permalink
Adapt to libvips style
Browse files Browse the repository at this point in the history
PR 3125 would resolve this in a better way with clang-format.
  • Loading branch information
kleisauke committed Jan 17, 2023
1 parent 0b75df2 commit d15c1ed
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 40 deletions.
4 changes: 2 additions & 2 deletions libvips/foreign/foreign.c
Original file line number Diff line number Diff line change
Expand Up @@ -3009,10 +3009,10 @@ vips_foreign_operation_init( void )
#if defined(HAVE_RSVG) || defined(HAVE_RESVG)
vips_foreign_load_svg_file_get_type();
vips_foreign_load_svg_buffer_get_type();
#if defined(HAVE_RSVG)
#ifdef HAVE_RSVG
vips_foreign_load_svg_source_get_type();
#endif
#endif /*HAVE_RSVG*/
#endif /*defined(HAVE_RSVG) || defined(HAVE_RESVG)*/

#if defined(HAVE_LIBJXL) && !defined(LIBJXL_MODULE)
vips_foreign_load_jxl_file_get_type();
Expand Down
83 changes: 45 additions & 38 deletions libvips/foreign/svgload.c
Original file line number Diff line number Diff line change
Expand Up @@ -330,9 +330,7 @@ vips_foreign_load_svg_dispose( GObject *gobject )
VIPS_UNREF( svg->page );
#else
resvg_options_destroy( svg->options );
if ( svg->tree ) {
resvg_tree_destroy( svg->tree );
}
VIPS_FREEF( resvg_tree_destroy, svg->tree );
#endif

G_OBJECT_CLASS( vips_foreign_load_svg_parent_class )->
Expand Down Expand Up @@ -512,7 +510,7 @@ vips_foreign_load_svg_get_natural_size( VipsForeignLoadSvg *svg,

#endif /*LIBRSVG_CHECK_VERSION( 2, 52, 0 )*/
#else /* HAVE_RSVG */
resvg_size size = resvg_get_image_size(svg->tree);
resvg_size size = resvg_get_image_size( svg->tree );
width = size.width;
height = size.height;
#endif
Expand Down Expand Up @@ -543,7 +541,7 @@ vips_foreign_load_svg_get_scaled_size( VipsForeignLoadSvg *svg,
#ifdef HAVE_RSVG
rsvg_handle_set_dpi( svg->page, 72.0 );
#else
resvg_options_set_dpi(svg->options, 72.0);
resvg_options_set_dpi( svg->options, 72.0 );
#endif
if( vips_foreign_load_svg_get_natural_size( svg, &width, &height ) )
return( -1 );
Expand Down Expand Up @@ -701,17 +699,21 @@ vips_foreign_load_svg_generate( VipsRegion *or,
(char *) pixmap
);

// Just unpremultiply.
for (int i = 0; i < r->width * r->height; i++) {
/* Just unpremultiply.
*/
for( int i = 0; i < r->width * r->height; i++ ) {
guint8 *ptr = &pixmap[i * 4];
guint8 a = ptr[3];
// Skip transparent and fully opaque pixels.
if ( a != 0 && a != 255 ) {
// Any compiler will unroll it.
for (int i = 0; i < 3; i++) {
ptr[i] = 255 * ptr[i] / a;
}
}

/* Skip transparent and fully opaque pixels.
*/
if( a == 0 || a == 255 )
continue;

/* Any compiler will unroll it.
*/
for( int j = 0; j < 3; j++ )
ptr[j] = 255 * ptr[j] / a;
}

#endif
Expand Down Expand Up @@ -934,22 +936,23 @@ vips_foreign_load_svg_file_is_a( const char *filename )
vips_foreign_load_svg_is_a( buf, bytes ) );
}

static const char *resvg_error_msg(resvg_error e) {
switch (e) {
case RESVG_ERROR_NOT_AN_UTF8_STR:
return "only UTF-8 content is supported";
case RESVG_ERROR_FILE_OPEN_FAILED:
return "failed to open the provided file";
case RESVG_ERROR_MALFORMED_GZIP:
return "compressed SVG must use the GZip algorithm";
case RESVG_ERROR_ELEMENTS_LIMIT_REACHED:
return "we do not allow SVG with more than 1_000_000 elements for security reasons";
case RESVG_ERROR_INVALID_SIZE:
return "SVG doesn't have a valid size";
case RESVG_ERROR_PARSING_FAILED:
return "failed to parse SVG data";
default:
return "unknown error";
static const char *
resvg_error_msg( resvg_error e ) {
switch( e ) {
case RESVG_ERROR_NOT_AN_UTF8_STR:
return "only UTF-8 content is supported";
case RESVG_ERROR_FILE_OPEN_FAILED:
return "failed to open the provided file";
case RESVG_ERROR_MALFORMED_GZIP:
return "compressed SVG must use the GZip algorithm";
case RESVG_ERROR_ELEMENTS_LIMIT_REACHED:
return "we do not allow SVG with more than 1_000_000 elements for security reasons";
case RESVG_ERROR_INVALID_SIZE:
return "SVG doesn't have a valid size";
case RESVG_ERROR_PARSING_FAILED:
return "failed to parse SVG data";
default:
return "unknown error";
}
}

Expand All @@ -974,10 +977,12 @@ vips_foreign_load_svg_file_header( VipsForeignLoad *load )
}
g_object_unref( gfile );
#else
resvg_error error = resvg_parse_tree_from_file(file->filename, svg->options, &svg->tree);
if (error != RESVG_OK) {
vips_error(VIPS_OBJECT_GET_CLASS( svg )->nickname, "%s", resvg_error_msg(error));
return (-1);
resvg_error error = resvg_parse_tree_from_file(
file->filename, svg->options, &svg->tree );
if( error != RESVG_OK ) {
vips_error( VIPS_OBJECT_GET_CLASS( svg )->nickname,
"%s", resvg_error_msg( error ) );
return( -1 );
}
#endif
VIPS_SETSTR( load->out->filename, file->filename );
Expand Down Expand Up @@ -1066,10 +1071,12 @@ vips_foreign_load_svg_buffer_header( VipsForeignLoad *load )
}
g_object_unref( gstream );
#else
resvg_error error = resvg_parse_tree_from_data(buffer->buf->data, buffer->buf->length, svg->options, &svg->tree);
if (error != RESVG_OK) {
vips_error(VIPS_OBJECT_GET_CLASS( svg )->nickname, "%s", resvg_error_msg(error));
return (-1);
resvg_error error = resvg_parse_tree_from_data(
buffer->buf->data, buffer->buf->length, svg->options, &svg->tree );
if( error != RESVG_OK ) {
vips_error( VIPS_OBJECT_GET_CLASS( svg )->nickname,
"%s", resvg_error_msg( error ) );
return( -1 );
}
#endif
return( vips_foreign_load_svg_header( load ) );
Expand Down

0 comments on commit d15c1ed

Please sign in to comment.