fixed a bug reported by Graham Asher
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
diff --git a/ChangeLog b/ChangeLog
index 6495ede..04802b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2001-02-22 David Turner <david.turner@freetype.org>
+
+ * src/base/ftgrays.c (grays_sweep): the function didn't exit
+ immediately if "num_cells" was 0 as it should. Thanks to Boris
+ for finding this out.
+
+ * src/base/ftglyph.c (FT_Glyph_To_Bitmap): fixed memory leak when
+ bitmap rendering fails.. (thanks to Graham Asher)
+
2001-02-13 Werner Lemberg <wl@gnu.org>
* docs/docmaker.py (DocSection::add_element): Use
diff --git a/src/base/ftglyph.c b/src/base/ftglyph.c
index 95049ae..20d2cdf 100644
--- a/src/base/ftglyph.c
+++ b/src/base/ftglyph.c
@@ -602,6 +602,12 @@
if ( !error )
error = FT_Render_Glyph_Internal( glyph->library, &dummy, render_mode );
+ if (error)
+ {
+ FT_Glyph_Done( FT_GLYPH(bitmap) );
+ goto Exit;
+ }
+
if ( !destroy && origin )
{
FT_Vector v;
diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c
index d06bb28..291e62e 100644
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -1359,7 +1359,9 @@
FT_UNUSED( target );
-
+ if ( ras.num_cells == 0 )
+ return;
+
cur = ras.cells;
limit = cur + ras.num_cells;