freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2-demos] master 0a29651: [ftgrid] Minor tweaks.


From: Werner Lemberg
Subject: [freetype2-demos] master 0a29651: [ftgrid] Minor tweaks.
Date: Sat, 5 Feb 2022 16:54:21 -0500 (EST)

branch: master
commit 0a29651d601bc46af92debc76c96ae8b5776932c
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>

    [ftgrid] Minor tweaks.
    
    * src/ftgrid.c (scale_bitmap): Take the buffer immediately.
    (DO_BITMAP): Minor.
    * src/ftcommon.c (FTDemo_Glyph_To_Bitmap): Clarify ownership.
---
 src/ftcommon.c |  2 +-
 src/ftgrid.c   | 15 +++++++--------
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/ftcommon.c b/src/ftcommon.c
index 64768bb..e474924 100644
--- a/src/ftcommon.c
+++ b/src/ftcommon.c
@@ -1387,7 +1387,7 @@
     target->rows   = (int)source->rows;
     target->width  = (int)source->width;
     target->pitch  = source->pitch;
-    target->buffer = source->buffer;
+    target->buffer = source->buffer;  /* source glyf still owns it */
     target->grays  = source->num_grays;
 
     switch ( source->pixel_mode )
diff --git a/src/ftgrid.c b/src/ftgrid.c
index 2cdb710..f701844 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -399,7 +399,6 @@
                 int         scale )
   {
     unsigned char*  s = bit->buffer;
-    unsigned char*  t;
     unsigned char*  line;
     int             pitch;
     int             width;
@@ -409,12 +408,13 @@
                            : -bit->pitch;
     width = bit->width;
 
-    t = (unsigned char*)malloc( (size_t)( pitch * bit->rows *
-                                          scale * scale ) );
-    if ( !t )
-      return;
+    line = (unsigned char*)malloc( (size_t)( pitch * bit->rows *
+                                             scale * scale ) );
+
+    bit->buffer = line;  /* the bitmap now owns this buffer */
 
-    line = t;
+    if ( !line )
+      return;
 
     switch( bit->mode )
     {
@@ -515,7 +515,6 @@
         return;
     }
 
-    bit->buffer = t;
     bit->rows  *= scale;
     bit->width *= scale;
     bit->pitch *= scale;
@@ -598,7 +597,7 @@
                               ox + left * scale, oy - top * scale,
                               st->axis_color );
 
-        free( bitg.buffer );
+        grDoneBitmap( &bitg );
 
         if ( glyf )
           FT_Done_Glyph( glyf );



reply via email to

[Prev in Thread] Current Thread [Next in Thread]