diff --git a/ChangeLog b/ChangeLog index 4596ba61c..056d20554 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-05-25 Werner Lemberg + + * src/raster/ftraster.c (fc_black_render): Return 0 when we are + trying to render into a zero-width/height bitmap, not an error code. + 2008-05-20 suzuki toshiya * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid diff --git a/src/raster/ftraster.c b/src/raster/ftraster.c index 9a96fb8e6..86d77d4b7 100644 --- a/src/raster/ftraster.c +++ b/src/raster/ftraster.c @@ -3331,7 +3331,8 @@ static const char count_table[256] = if ( !outline->contours || !outline->points ) return Raster_Err_Invalid; - if ( outline->n_points != outline->contours[outline->n_contours - 1] + 1 ) + if ( outline->n_points != + outline->contours[outline->n_contours - 1] + 1 ) return Raster_Err_Invalid; worker = raster->worker; @@ -3340,7 +3341,14 @@ static const char count_table[256] = if ( params->flags & FT_RASTER_FLAG_DIRECT ) return Raster_Err_Unsupported; - if ( !target_map || !target_map->buffer ) + if ( !target_map ) + return Raster_Err_Invalid; + + /* nothing to do */ + if ( !target_map->width || !target_map->rows ) + return Raster_Err_None; + + if ( !target_map->buffer ) return Raster_Err_Invalid; ras.outline = *outline;