ref: 8fe6539026cf87a8bcf9a23d54cd9d48176bc880
parent: 50ef72b6e3a33cd70c65676923f42fb75333831e
author: Werner Lemberg <[email protected]>
date: Sat Apr 29 03:31:16 EDT 2006
Further C library abstraction. Based on a patch from [email protected]. * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE, ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc, ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for C library functions. Update all users accordingly (and catch some other places where the C library function was used instead of the wrapper functions). * src/base/ftsystem.c: Don't include stdio.h and stdlib.h. * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't include malloc.h.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2006-04-29 Werner Lemberg <[email protected]>
+
+ Further C library abstraction. Based on a patch from
+ [email protected].
+
+ * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
+ ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
+ ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
+ C library functions. Update all users accordingly (and catch some
+ other places where the C library function was used instead of the
+ wrapper functions).
+
+ * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
+ * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
+ include malloc.h.
+
2006-04-28 Werner Lemberg <[email protected]>
* src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
--- a/include/freetype/config/ftstdlib.h
+++ b/include/freetype/config/ftstdlib.h
@@ -65,8 +65,9 @@
#include <limits.h>
-#define FT_UINT_MAX UINT_MAX
+#define FT_CHAR_BIT CHAR_BIT
#define FT_INT_MAX INT_MAX
+#define FT_UINT_MAX UINT_MAX
#define FT_ULONG_MAX ULONG_MAX
@@ -80,19 +81,19 @@
#include <ctype.h>
#define ft_isalnum isalnum
-#define ft_isupper isupper
-#define ft_islower islower
#define ft_isdigit isdigit
+#define ft_islower islower
+#define ft_isupper isupper
#define ft_isxdigit isxdigit
#include <string.h>
+#define ft_memchr memchr
#define ft_memcmp memcmp
#define ft_memcpy memcpy
#define ft_memmove memmove
#define ft_memset memset
-#define ft_memchr memchr
#define ft_strcat strcat
#define ft_strcmp strcmp
#define ft_strcpy strcpy
@@ -102,8 +103,21 @@
#define ft_strrchr strrchr
+ /**********************************************************************/
+ /* */
+ /* file handling */
+ /* */
+ /**********************************************************************/
+
+
#include <stdio.h>
+#define FT_FILE FILE
+#define ft_fclose fclose
+#define ft_fopen fopen
+#define ft_fread fread
+#define ft_fseek fseek
+#define ft_ftell ftell
#define ft_sprintf sprintf
@@ -117,9 +131,32 @@
#include <stdlib.h>
#define ft_qsort qsort
+
#define ft_exit exit /* only used to exit from unhandled exceptions */
+
+ /**********************************************************************/
+ /* */
+ /* memory allocation */
+ /* */
+ /**********************************************************************/
+
+
+#define ft_scalloc calloc
+#define ft_sfree free
+#define ft_smalloc malloc
+#define ft_srealloc realloc
+
+
+ /**********************************************************************/
+ /* */
+ /* miscellaneous */
+ /* */
+ /**********************************************************************/
+
+
#define ft_atol atol
+#define ft_labs labs
/**********************************************************************/
@@ -135,13 +172,13 @@
/* jmp_buf is defined as a macro */
/* on certain platforms */
-#define ft_setjmp setjmp /* same thing here */
#define ft_longjmp longjmp /* likewise */
+#define ft_setjmp setjmp /* same thing here */
- /* the following is only used for debugging purposes, i.e. when */
- /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */
- /* */
+ /* the following is only used for debugging purposes, i.e., if */
+ /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */
+
#include <stdarg.h>
--- a/include/freetype/fttypes.h
+++ b/include/freetype/fttypes.h
@@ -4,7 +4,7 @@
/* */
/* FreeType simple types definitions (specification only). */
/* */
-/* Copyright 1996-2001, 2002, 2004 by */
+/* Copyright 1996-2001, 2002, 2004, 2006 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -308,7 +308,7 @@
/* FT_Offset */
/* */
/* <Description> */
- /* This is equivalent to the ANSI C `size_t' type, i.e. the largest */
+ /* This is equivalent to the ANSI C `size_t' type, i.e., the largest */
/* _unsigned_ integer type used to express a file size or position, */
/* or a memory block size. */
/* */
@@ -321,7 +321,7 @@
/* FT_PtrDist */
/* */
/* <Description> */
- /* This is equivalent to the ANSI C `ptrdiff_t' type, i.e. the */
+ /* This is equivalent to the ANSI C `ptrdiff_t' type, i.e., the */
/* largest _signed_ integer type used to express the distance */
/* between two pointers. */
/* */
--- a/src/base/ftmac.c
+++ b/src/base/ftmac.c
@@ -196,9 +196,9 @@
/* build up a complete face name */
ft_strcpy( fullName, famName );
if ( style & bold )
- strcat( fullName, " Bold" );
+ ft_strcat( fullName, " Bold" );
if ( style & italic )
- strcat( fullName, " Italic" );
+ ft_strcat( fullName, " Italic" );
/* compare with the name we are looking for */
if ( ft_strcmp( fullName, fontName ) == 0 )
@@ -292,13 +292,13 @@
#if defined( __MWERKS__ ) && !TARGET_RT_MAC_MACHO
-#define STREAM_FILE( stream ) ( (FILE*)stream->descriptor.pointer )
+#define STREAM_FILE( stream ) ( (FT_FILE*)stream->descriptor.pointer )
FT_CALLBACK_DEF( void )
ft_FSp_stream_close( FT_Stream stream )
{
- fclose( STREAM_FILE( stream ) );
+ ft_fclose( STREAM_FILE( stream ) );
stream->descriptor.pointer = NULL;
stream->size = 0;
@@ -312,14 +312,14 @@
unsigned char* buffer,
unsigned long count )
{
- FILE* file;
+ FT_FILE* file;
file = STREAM_FILE( stream );
- fseek( file, offset, SEEK_SET );
+ ft_fseek( file, offset, SEEK_SET );
- return (unsigned long)fread( buffer, 1, count, file );
+ return (unsigned long)ft_fread( buffer, 1, count, file );
}
#endif /* __MWERKS__ && !TARGET_RT_MAC_MACHO */
--- a/src/base/ftsystem.c
+++ b/src/base/ftsystem.c
@@ -33,10 +33,7 @@
#include FT_ERRORS_H
#include FT_TYPES_H
-#include <stdio.h>
-#include <stdlib.h>
-
/*************************************************************************/
/* */
/* MEMORY MANAGEMENT INTERFACE */
@@ -74,7 +71,7 @@
{
FT_UNUSED( memory );
- return malloc( size );
+ return ft_smalloc( size );
}
@@ -107,7 +104,7 @@
FT_UNUSED( memory );
FT_UNUSED( cur_size );
- return realloc( block, new_size );
+ return ft_srealloc( block, new_size );
}
@@ -130,7 +127,7 @@
{
FT_UNUSED( memory );
- free( block );
+ ft_sfree( block );
}
@@ -152,7 +149,7 @@
/* We use the macro STREAM_FILE for convenience to extract the */
/* system-specific stream handle from a given FreeType stream object */
-#define STREAM_FILE( stream ) ( (FILE*)stream->descriptor.pointer )
+#define STREAM_FILE( stream ) ( (FT_FILE*)stream->descriptor.pointer )
/*************************************************************************/
@@ -169,7 +166,7 @@
FT_CALLBACK_DEF( void )
ft_ansi_stream_close( FT_Stream stream )
{
- fclose( STREAM_FILE( stream ) );
+ ft_fclose( STREAM_FILE( stream ) );
stream->descriptor.pointer = NULL;
stream->size = 0;
@@ -203,14 +200,14 @@
unsigned char* buffer,
unsigned long count )
{
- FILE* file;
+ FT_FILE* file;
file = STREAM_FILE( stream );
- fseek( file, offset, SEEK_SET );
+ ft_fseek( file, offset, SEEK_SET );
- return (unsigned long)fread( buffer, 1, count, file );
+ return (unsigned long)ft_fread( buffer, 1, count, file );
}
@@ -220,13 +217,13 @@
FT_Stream_Open( FT_Stream stream,
const char* filepathname )
{
- FILE* file;
+ FT_FILE* file;
if ( !stream )
return FT_Err_Invalid_Stream_Handle;
- file = fopen( filepathname, "rb" );
+ file = ft_fopen( filepathname, "rb" );
if ( !file )
{
FT_ERROR(( "FT_Stream_Open:" ));
@@ -235,9 +232,9 @@
return FT_Err_Cannot_Open_Resource;
}
- fseek( file, 0, SEEK_END );
- stream->size = ftell( file );
- fseek( file, 0, SEEK_SET );
+ ft_fseek( file, 0, SEEK_END );
+ stream->size = ft_ftell( file );
+ ft_fseek( file, 0, SEEK_SET );
stream->descriptor.pointer = file;
stream->pathname.pointer = (char*)filepathname;
@@ -273,7 +270,7 @@
FT_Memory memory;
- memory = (FT_Memory)malloc( sizeof ( *memory ) );
+ memory = (FT_Memory)ft_smalloc( sizeof ( *memory ) );
if ( memory )
{
memory->user = 0;
--- a/src/cache/ftcimage.c
+++ b/src/cache/ftcimage.c
@@ -122,7 +122,7 @@
bitg = (FT_BitmapGlyph)glyph;
- size = bitg->bitmap.rows * labs( bitg->bitmap.pitch ) +
+ size = bitg->bitmap.rows * ft_labs( bitg->bitmap.pitch ) +
sizeof ( *bitg );
}
break;
--- a/src/cff/cffobjs.c
+++ b/src/cff/cffobjs.c
@@ -612,8 +612,8 @@
/* double check */
if ( !(flags & FT_STYLE_FLAG_BOLD) && cffface->style_name )
- if ( !strncmp( cffface->style_name, "Bold", 4 ) ||
- !strncmp( cffface->style_name, "Black", 5 ) )
+ if ( !ft_strncmp( cffface->style_name, "Bold", 4 ) ||
+ !ft_strncmp( cffface->style_name, "Black", 5 ) )
flags |= FT_STYLE_FLAG_BOLD;
cffface->style_flags = flags;
--- a/src/gxvalid/gxvfgen.c
+++ b/src/gxvalid/gxvfgen.c
@@ -5,7 +5,7 @@
/* Generate feature registry data for gxv `feat' validator. */
/* This program is derived from gxfeatreg.c in gxlayout. */
/* */
-/* Copyright 2004, 2005 by Masatake YAMATO and Redhat K.K. */
+/* Copyright 2004, 2005, 2006 by Masatake YAMATO and Redhat K.K. */
/* */
/* This file may only be used, */
/* modified, and distributed under the terms of the FreeType project */
@@ -464,9 +464,9 @@
printf( " {%1d, %1d, %1d, %2d}, /* %s */\n",
feat_name ? 1 : 0,
- ( feat_name &&
- ( strncmp( feat_name,
- APPLE_RESERVED, APPLE_RESERVED_LENGTH ) == 0 )
+ ( feat_name &&
+ ( ft_strncmp( feat_name,
+ APPLE_RESERVED, APPLE_RESERVED_LENGTH ) == 0 )
) ? 1 : 0,
featreg_table[i].exclusive ? 1 : 0,
nSettings,
--- a/src/gzip/zutil.c
+++ b/src/gzip/zutil.c
@@ -157,8 +157,8 @@
#ifndef MY_ZCALLOC /* Any system without a special alloc function */
#ifndef STDC
-extern voidp calloc OF((uInt items, uInt size));
-extern void free OF((voidpf ptr));
+extern voidp ft_scalloc OF((uInt items, uInt size));
+extern void ft_sfree OF((voidpf ptr));
#endif
voidpf zcalloc (opaque, items, size)
@@ -167,7 +167,7 @@
unsigned size;
{
if (opaque) items += size - size; /* make compiler happy */
- return (voidpf)calloc(items, size);
+ return (voidpf)ft_scalloc(items, size);
}
void zcfree (opaque, ptr)
@@ -174,7 +174,7 @@
voidpf opaque;
voidpf ptr;
{
- free(ptr);
+ ft_sfree(ptr);
if (opaque) return; /* make compiler happy */
}
--- a/src/gzip/zutil.h
+++ b/src/gzip/zutil.h
@@ -80,7 +80,6 @@
# include <alloc.h>
# endif
# else /* MSC or DJGPP */
-# include <malloc.h>
# endif
#endif
@@ -95,7 +94,7 @@
#if defined(VAXC) || defined(VMS)
# define OS_CODE 0x02
# define F_OPEN(name, mode) \
- fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
+ ft_fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
#endif
#ifdef AMIGA
@@ -141,7 +140,7 @@
#endif
#ifndef F_OPEN
-# define F_OPEN(name, mode) fopen((name), (mode))
+# define F_OPEN(name, mode) ft_fopen((name), (mode))
#endif
/* functions */