aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2018-01-06 08:39:36 +0100
committerWerner Lemberg <wl@gnu.org>2018-01-06 08:39:36 +0100
commit3758aed7605aff97d6156937efde8ec51919caab (patch)
tree66641d51d392ec19a12def886a4b8ea55faac7a3
parentb720070988ea80ca74d644cd7ab77f1f81c54a1e (diff)
downloadfreetype-3758aed7605aff97d6156937efde8ec51919caab.tar.gz
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.
-rw-r--r--ChangeLog13
-rw-r--r--docs/CHANGES3
-rw-r--r--include/freetype/ftmm.h22
-rw-r--r--src/base/ftmm.c19
4 files changed, 56 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 1c61eaeca..0ead1e5f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2018-01-06 Werner Lemberg <wl@gnu.org>
+
+ 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 <wl@gnu.org>
[truetype] Round offsets of glyph components only if hinting is on.
diff --git a/docs/CHANGES b/docs/CHANGES
index b9e3d4767..0a83aa2e7 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 8502b88af..7ba34bba5 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 c8b6d1361..800441bca 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 )