Commit 3a18c5e29efbb463f360c0951530572a5020535f

David Turner 2006-11-28T08:38:31

* src/smooth/ftgrays.c (gray_raster_render): return 0 when we're trying to rendering into a zero-width/height bitmap, instead of an error code.

diff --git a/ChangeLog b/ChangeLog
index 828cbbd..9cb6e1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2006-11-28  David Turner    <david@freetype.org>
 
+    * src/smooth/ftgrays.c (gray_raster_render): return 0 when we're
+    trying to rendering into a zero-width/height bitmap, instead of an
+    error code.
+
     * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch
 
     * src/smooth/ftgrays.c: remove hard-coded error values, use FreeType
diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c
index 448125c..e17a5b5 100644
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -1783,9 +1783,18 @@
       return ErrRaster_Invalid_Outline;
 
     /* if direct mode is not set, we must have a target bitmap */
-    if ( ( params->flags & FT_RASTER_FLAG_DIRECT ) == 0 &&
-         ( !target_map || !target_map->buffer )         )
-      return ErrRaster_Invalid_Argument;
+    if ( (params->flags & FT_RASTER_FLAG_DIRECT) == 0 )
+    {
+        if ( !target_map )
+            return ErrRaster_Invalid_Argument;
+
+        /* nothing to do */
+        if ( !target_map->width || !target_map->rows )
+            return 0;
+
+        if ( !target_map->buffer )
+            return ErrRaster_Invalid_Argument;
+    }
 
     /* this version does not support monochrome rendering */
     if ( !( params->flags & FT_RASTER_FLAG_AA ) )