Commit 8d81d41ae3373c830cf8a41f0da430fb0608c4a6

Suzuki, Toshiya (鈴木俊哉) 2005-11-18T07:47:06

add FT_TrueTypeGX_Free() etc to free the buffers allocated by gxvalid, otvalid

diff --git a/ChangeLog b/ChangeLog
index d29c1f0..b4fdf8a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-11-18  susuzki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	* include/freetype/ftgxval.h, src/base/ftgxval.c
+	(FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
+	buffers allocated by gxvalid module.
+	* include/freetype/ftotval.h, src/base/ftotval.c
+	(FT_OpenType_Free): New function to free buffer allocated by
+	otvalid module.
+
 2005-11-18  Chia-I Wu  <b90201047@ntu.edu.tw>
 
 	* builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
diff --git a/include/freetype/ftgxval.h b/include/freetype/ftgxval.h
index b78d7f3..fd999cc 100644
--- a/include/freetype/ftgxval.h
+++ b/include/freetype/ftgxval.h
@@ -206,10 +206,10 @@ FT_BEGIN_HEADER
   *   otherwise.
   *
   *   After use, the application should deallocate the buffers pointed to by
-  *   each tables' element.  A NULL value indicates that the table either
-  *   doesn't exist in the font, the application hasn't asked for
-  *   validation, or the validator doesn't have the ability to validate the
-  *   sfnt table.
+  *   each tables' element, by calling FT_TrueTypeGX_Free(). A NULL value
+  *   indicates that the table either doesn't exist in the font,
+  *   the application hasn't asked for validation, or the validator doesn't
+  *   have the ability to validate the sfnt table.
   */
   FT_EXPORT( FT_Error )
   FT_TrueTypeGX_Validate( FT_Face   face,
@@ -222,6 +222,33 @@ FT_BEGIN_HEADER
 
  /**********************************************************************
   *
+  * @function:
+  *    FT_TrueTypeGX_Free
+  *
+  * @description:
+  *    Free the buffer allocated by TrueTypeGX validator.
+  *
+  * @input:
+  *    face ::
+  *       A handle to the input face.
+  *
+  *    table ::
+  *       The pointer to the buffer allocated by
+  *       FT_TrueTypeGX_Validate().
+  *
+  * @note:
+  *   This function must be used to free the buffer allocated by
+  *   FT_TrueTypeGX_Validate() only.
+  */
+  FT_EXPORT( void )
+  FT_TrueTypeGX_Free( FT_Face   face,
+                      FT_Bytes  table );
+
+
+  /* */
+
+ /**********************************************************************
+  *
   * @enum:
   *    FT_VALIDATE_CKERNXXX
   *
@@ -283,8 +310,8 @@ FT_BEGIN_HEADER
   *
   * @note:
   *   After use, the application should deallocate the buffers pointed to by
-  *   ckern_table.  A NULL value indicates that the table doesn't exist in
-  *   the font.
+  *   ckern_table, by calling FT_ClassicKern_Free(). A NULL value indicates
+  *   that the table doesn't exist in the font.
   */
   FT_EXPORT( FT_Error )
   FT_ClassicKern_Validate( FT_Face    face,
@@ -292,6 +319,33 @@ FT_BEGIN_HEADER
                            FT_Bytes  *ckern_table );
 
 
+  /* */
+
+ /**********************************************************************
+  *
+  * @function:
+  *    FT_ClassicKern_Free
+  *
+  * @description:
+  *    Free the buffer allocated by classic Kern validator.
+  *
+  * @input:
+  *    face ::
+  *       A handle to the input face.
+  *
+  *    table ::
+  *       The pointer to the buffer that is allocated by
+  *       FT_ClassicKern_Validate().
+  *
+  * @note:
+  *   This function must be used to free the buffer allocated by
+  *   FT_ClassicKern_Validate() only.
+  */
+  FT_EXPORT( void )
+  FT_ClassicKern_Free( FT_Face   face,
+                       FT_Bytes  table );
+
+
  /* */
 
 
diff --git a/include/freetype/ftotval.h b/include/freetype/ftotval.h
index fc3306c..d9b92c1 100644
--- a/include/freetype/ftotval.h
+++ b/include/freetype/ftotval.h
@@ -146,9 +146,10 @@ FT_BEGIN_HEADER
   *   This function only works with OpenType fonts, returning an error
   *   otherwise.
   *
-  *   After use, the application should deallocate the five tables with
-  *   `free'.  A NULL value indicates that the table either doesn't exist
-  *   in the font, or the application hasn't asked for validation.
+  *   After use, the application should deallocate the five tables by
+  *   FT_OpenType_Free(). A NULL value indicates that the table either
+  *   doesn't exist in the font, or the application hasn't asked for
+  *   validation.
   */
   FT_EXPORT( FT_Error )
   FT_OpenType_Validate( FT_Face    face,
@@ -159,6 +160,33 @@ FT_BEGIN_HEADER
                         FT_Bytes  *GSUB_table, 
                         FT_Bytes  *JSTF_table );
 
+  /* */
+
+ /**********************************************************************
+  *
+  * @function:
+  *    FT_OpenType_Free
+  *
+  * @description:
+  *    Free the buffer allocated by OpenType validator.
+  *
+  * @input:
+  *    face ::
+  *       A handle to the input face.
+  *
+  *    table ::
+  *       The pointer to the buffer that is allocated by
+  *       FT_OpenType_Validate().
+  *
+  * @note:
+  *   This function must be used to free the buffer allocated by
+  *   FT_OpenType_Validate() only.
+  */
+  FT_EXPORT( void )
+  FT_OpenType_Free( FT_Face   face,
+                    FT_Bytes  table );
+
+
  /* */
 
 
diff --git a/src/base/ftgxval.c b/src/base/ftgxval.c
index 10ee969..615e5ed 100644
--- a/src/base/ftgxval.c
+++ b/src/base/ftgxval.c
@@ -69,6 +69,17 @@
   }
 
 
+  FT_EXPORT_DEF( void )
+  FT_TrueTypeGX_Free( FT_Face   face,
+                      FT_Bytes  table )
+  {
+    FT_Memory  memory = FT_FACE_MEMORY( face );
+
+
+    FT_FREE( table );
+  }
+
+
   FT_EXPORT_DEF( FT_Error )
   FT_ClassicKern_Validate( FT_Face    face,
                            FT_UInt    validation_flags,
@@ -104,4 +115,15 @@
   }
 
 
+  FT_EXPORT_DEF( void )
+  FT_ClassicKern_Free( FT_Face   face,
+                       FT_Bytes  table )
+  {
+    FT_Memory  memory = FT_FACE_MEMORY( face );
+
+
+    FT_FREE( table );
+  }
+
+
 /* END */
diff --git a/src/base/ftotval.c b/src/base/ftotval.c
index 1364d75..f14580d 100644
--- a/src/base/ftotval.c
+++ b/src/base/ftotval.c
@@ -69,4 +69,15 @@
   }
 
 
+  FT_EXPORT_DEF( void )
+  FT_OpenType_Free( FT_Face   face,
+                    FT_Bytes  table )
+  {
+    FT_Memory  memory = FT_FACE_MEMORY( face );
+
+
+    FT_FREE( table );
+  }
+
+
 /* END */