freetype-commit
[Top][All Lists]
Advanced

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

[freetype2] master 3758aed 2/2: Add `FT_Done_MM_Var'.


From: Werner LEMBERG
Subject: [freetype2] master 3758aed 2/2: Add `FT_Done_MM_Var'.
Date: Sat, 6 Jan 2018 02:42:43 -0500 (EST)

branch: master
commit 3758aed7605aff97d6156937efde8ec51919caab
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>

    Add `FT_Done_MM_Var'.
    
    This is necessary in case the application's memory routines differ
    from FreeType.  A typical example is a Python application on Windows
    that calls FreeType compiled as a DLL via the `ctypes' interface.
    
    * include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare
    and define.
    
    * docs/CHANGES: Updated.
---
 ChangeLog               | 13 +++++++++++++
 docs/CHANGES            |  3 +++
 include/freetype/ftmm.h | 22 +++++++++++++++++++++-
 src/base/ftmm.c         | 19 +++++++++++++++++++
 4 files changed, 56 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 1c61eae..0ead1e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2018-01-06  Werner Lemberg  <address@hidden>
+
+       Add `FT_Done_MM_Var'.
+
+       This is necessary in case the application's memory routines differ
+       from FreeType.  A typical example is a Python application on Windows
+       that calls FreeType compiled as a DLL via the `ctypes' interface.
+
+       * include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare
+       and define.
+
+       * docs/CHANGES: Updated.
+
 2018-01-03  Werner Lemberg  <address@hidden>
 
        [truetype] Round offsets of glyph components only if hinting is on.
diff --git a/docs/CHANGES b/docs/CHANGES
index b9e3d47..0a83aa2 100644
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -56,6 +56,9 @@ CHANGES BETWEEN 2.8.1 and 2.8.2
       PostScript name is provided, not  looking up special entries for
       named instances.
 
+    - A new function  `FT_Done_MM_Var' is provided to  free the memory
+      returned in a call to `FT_Get_MM_Var'.
+
     - On  platforms  using  the   `configure'  script,  the  installed
       `ftoption.h' file  now correctly reflects  configuration options
       like `--with-harfbuzz'.
diff --git a/include/freetype/ftmm.h b/include/freetype/ftmm.h
index 8502b88..7ba34bb 100644
--- a/include/freetype/ftmm.h
+++ b/include/freetype/ftmm.h
@@ -286,7 +286,7 @@ FT_BEGIN_HEADER
   /* <Output>                                                              */
   /*    amaster :: The variation descriptor.                               */
   /*               Allocates a data structure, which the user must         */
-  /*               deallocate with `free' after use.                       */
+  /*               deallocate with a call to @FT_Done_MM_Var after use.    */
   /*                                                                       */
   /* <Return>                                                              */
   /*    FreeType error code.  0~means success.                             */
@@ -299,6 +299,26 @@ FT_BEGIN_HEADER
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
+  /*    FT_Done_MM_Var                                                     */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Free the memory allocated by @FT_Get_MM_Var.                       */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    library :: A handle of the face's parent library object that was   */
+  /*               used in the call to @FT_Get_MM_Var to create `amaster'. */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    FreeType error code.  0~means success.                             */
+  /*                                                                       */
+  FT_EXPORT( FT_Error )
+  FT_Done_MM_Var( FT_Library   library,
+                  FT_MM_Var   *amaster );
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
   /*    FT_Set_MM_Design_Coordinates                                       */
   /*                                                                       */
   /* <Description>                                                         */
diff --git a/src/base/ftmm.c b/src/base/ftmm.c
index c8b6d13..800441b 100644
--- a/src/base/ftmm.c
+++ b/src/base/ftmm.c
@@ -148,6 +148,25 @@
   /* documentation is in ftmm.h */
 
   FT_EXPORT_DEF( FT_Error )
+  FT_Done_MM_Var( FT_Library  library,
+                  FT_MM_Var*  amaster )
+  {
+    FT_Memory  memory;
+
+
+    if ( !library )
+      return FT_THROW( Invalid_Library_Handle );
+
+    memory = library->memory;
+    FT_FREE( amaster );
+
+    return FT_Err_Ok;
+  }
+
+
+  /* documentation is in ftmm.h */
+
+  FT_EXPORT_DEF( FT_Error )
   FT_Set_MM_Design_Coordinates( FT_Face   face,
                                 FT_UInt   num_coords,
                                 FT_Long*  coords )



reply via email to

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