[ros-diffs] [ion] 16675: - Freetype Update to 2.1.10. Reduces memory usage, increases speed and fixes drawing bugs.

ion at svn.reactos.com ion at svn.reactos.com
Thu Jul 21 06:38:57 CEST 2005


- Freetype Update to 2.1.10. Reduces memory usage, increases speed and
fixes drawing bugs.
 - Enable Bytecode. Weird_W's fonts finally look humanly readable.

Thanks to Waxdragon for testing.
 
<http://www.freetype.org>

LATEST CHANGES BETWEEN 2.1.10 and 2.1.9

  I. IMPORTANT BUG FIXES

    - The size comparison for BDF and PCF files could fail sometimes.

    - Some  CFF files  were still not  loaded  correctly.   Patch from
      Derek Noonburg.

    - The stroker still had some serious bugs.

    - Boris  Letocha  fixed a  bug in  the  TrueType interpreter:  The
      NPUSHW instruction wasn't skipped correctly in IF clauses.  Some
      fonts like `Helvetica 75 Bold' failed.

    - Another  serious  bug  in  handling  TrueType hints  caused many
      distortions.  It has been introduced in version 2.1.8, and it is
      highly recommended to upgrade.

    - FreeType didn't properly parse empty Type 1 glyphs.
    
    - An unbound dynamic buffer growth was fixed in the PFR loader.
    
    - Several bugs have been fixed in the cache sub-system.

    - FreeType behaved incorrectly when resizing two distinct but very
      close character pixel sizes through `FT_Set_Char_Size' (Savannah
      bug #12263).
      
    - The auto-hinter didn't work properly for fonts without a Unicode
      charmap -- it even refused to load the glyphs.


  II. IMPORTANT CHANGES

    - Many fixes have been applied to drastically reduce the amount of
      heap   memory   used   by   FreeType,   especially   when  using
      memory-mapped font files  (which is the default on Unix  systems
      which support them).

    - The auto-hinter  has been replaced with a new module, called the
      `auto-fitter'.  It consumes  less memory  than its  predecessor,
      and it is  prepared to support non-latin scripts  better in next
      releases.

    - George Williams  contributed code to read  kerning data from PFM
      files.

    - FreeType   now   uses    the   TT_NAME_ID_PREFERRED_FAMILY   and
      TT_NAME_ID_PREFERRED_SUBFAMILY   strings   (if   available)  for
      setting  family  and  style in SFNT  fonts  (patch from Kornfeld
      Eliyahu Peter).

    - A  new  API `FT_Sfnt_Table_Info'  (in FT_TRUETYPE_TABLES_H)  has
      been added to retrieve name and size information of SFNT tables.

    - A new API `FT_OpenType_Validate' (in FT_OPENTYPE_VALIDATE_H) has
      been added to validate OpenType tables  (BASE, GDEF, GPOS, GSUB,
      JSTF).   After validation  it is  no longer  necessary to  check
      for errors in those tables while accessing them.

      Note that  this module might  be moved to another library in the
      future  to avoid  a tight  dependency between  FreeType and  the
      OpenType specification.

    - A new API in FT_BITMAP_H  (`FT_Bitmap_New', `FT_Bitmap_Convert',
      `FT_Bitmap_Copy',  `FT_Bitmap_Embolden',  `FT_Bitmap_Done')  has
      been added.   Its  use is  to convert an  FT_Bitmap structure in
      1bpp, 2bpp,  4bpp, or 8bpp  format into  another 8bpp FT_Bitmap,
      probably using a different pitch, and to further manipulate it.

    - A new  API `FT_Outline_Embolden'  (in FT_OUTLINE_H) gives  finer
      control how  outlines are embolded.

    - `FT_GlyphSlot_Embolden' (in FT_SYNTHESIS_H)  now handles bitmaps
      also (code contributed  by Chia I Wu).  Note that this  function
      is still experimental and may be replaced with a better API.

    - The method  how BDF and PCF  bitmap fonts  are accessed has been
      refined.   Formerly,   FT_Set_Pixel_Sizes  and  FT_Set_Char_Size
      were  synonyms in  FreeType's  BDF and PCF interface.  This  has
      changed now.  FT_Set_Pixel_Sizes  should be  used to  select the
      actual  font dimensions  (the `strike',  which is the sum of the
      `FONT_ASCENT'    and    `FONT_DESCENT'    properties),     while
      FT_Set_Char_Size  selects  the  `nominal' size  (the `PIXELSIZE'
      property).  In both functions, the width parameter is ignored.


  III. MISCELLANEOUS

    - The BDF driver  no longer converts  all returned bitmaps  with a
      depth of 2bpp or 4bpp to a depth of 8bpp.  The documentation has
      not  mentioned  this  explicitly,  but  implementors  might have
      relied on this after looking into the source files.

    - A new option `--ftversion' has been  added to freetype-config to
      return the FreeType version.

    - The  memory  debugger  has  been  updated   to  dump  allocation
      statistics on  all allocation  sources in the library.   This is
      useful to  spot greedy  allocations when  loading and processing
      fonts.

    - We removed a huge array of constant pointers to constant strings
      in the `psnames' module.   The problem was that  compilations in
      PIC mode (i.e.,  when generating a  Unix shared object/dll)  put
      the array  into the non-shared  writable section of  the library
      since absolute pointers are not relocatable by nature.
      
      This reduces the memory consumption by approximately 16KByte per
      process linked  to FreeType.   We now also store  the array in a
      compressed form (as a trie) which saves about 20KByte of code as
      well.

    - Kirill  Smelkov provided  patches to make  src/raster/ftraster.c
      compile stand-alone again.
Modified: trunk/reactos/lib/freetype/ChangeLog
Modified: trunk/reactos/lib/freetype/Jamfile
Modified: trunk/reactos/lib/freetype/Jamrules
Modified: trunk/reactos/lib/freetype/Makefile.freetype
Modified: trunk/reactos/lib/freetype/README
Added: trunk/reactos/lib/freetype/README.CVS
Added: trunk/reactos/lib/freetype/autogen.sh
Modified: trunk/reactos/lib/freetype/builds/amiga/README
Modified:
trunk/reactos/lib/freetype/builds/amiga/include/freetype/config/ftconfig
.h
Modified:
trunk/reactos/lib/freetype/builds/amiga/include/freetype/config/ftmodule
.h
Added: trunk/reactos/lib/freetype/builds/amiga/makefile
Added: trunk/reactos/lib/freetype/builds/amiga/makefile.os4
Modified: trunk/reactos/lib/freetype/builds/amiga/smakefile
Modified: trunk/reactos/lib/freetype/builds/amiga/src/base/ftdebug.c
Modified: trunk/reactos/lib/freetype/builds/amiga/src/base/ftsystem.c
Modified: trunk/reactos/lib/freetype/builds/atari/ATARI.H
Modified: trunk/reactos/lib/freetype/builds/atari/FNames.SIC
Modified: trunk/reactos/lib/freetype/builds/atari/FREETYPE.PRJ
Modified: trunk/reactos/lib/freetype/builds/atari/README.TXT
Modified: trunk/reactos/lib/freetype/builds/compiler/gcc-dev.mk
Modified: trunk/reactos/lib/freetype/builds/compiler/gcc.mk
Modified: trunk/reactos/lib/freetype/builds/dos/detect.mk
Modified: trunk/reactos/lib/freetype/builds/dos/dos-wat.mk
Modified: trunk/reactos/lib/freetype/builds/freetype.mk
Modified: trunk/reactos/lib/freetype/builds/unix/aclocal.m4
Modified: trunk/reactos/lib/freetype/builds/unix/config.guess
Modified: trunk/reactos/lib/freetype/builds/unix/config.sub
Modified: trunk/reactos/lib/freetype/builds/unix/configure
Modified: trunk/reactos/lib/freetype/builds/unix/configure.ac
Modified: trunk/reactos/lib/freetype/builds/unix/freetype-config.in
Modified: trunk/reactos/lib/freetype/builds/unix/freetype2.m4
Modified: trunk/reactos/lib/freetype/builds/unix/ft-munmap.m4
Modified: trunk/reactos/lib/freetype/builds/unix/ftsystem.c
Modified: trunk/reactos/lib/freetype/builds/unix/install-sh
Modified: trunk/reactos/lib/freetype/builds/unix/install.mk
Modified: trunk/reactos/lib/freetype/builds/unix/ltmain.sh
Modified: trunk/reactos/lib/freetype/builds/unix/mkinstalldirs
Modified: trunk/reactos/lib/freetype/builds/win32/detect.mk
Modified: trunk/reactos/lib/freetype/builds/win32/visualc/freetype.dsp
Modified:
trunk/reactos/lib/freetype/builds/win32/visualc/freetype.vcproj
Modified: trunk/reactos/lib/freetype/builds/win32/visualc/index.html
Modified: trunk/reactos/lib/freetype/configure
Modified: trunk/reactos/lib/freetype/devel/ftoption.h
Modified: trunk/reactos/lib/freetype/docs/CHANGES
Modified: trunk/reactos/lib/freetype/docs/CUSTOMIZE
Modified: trunk/reactos/lib/freetype/docs/DEBUG
Modified: trunk/reactos/lib/freetype/docs/FTL.txt
Modified: trunk/reactos/lib/freetype/docs/GPL.txt
Modified: trunk/reactos/lib/freetype/docs/INSTALL
Modified: trunk/reactos/lib/freetype/docs/INSTALL.ANY
Modified: trunk/reactos/lib/freetype/docs/INSTALL.GNU
Modified: trunk/reactos/lib/freetype/docs/INSTALL.UNX
Modified: trunk/reactos/lib/freetype/docs/INSTALL.VMS
Modified: trunk/reactos/lib/freetype/docs/PATENTS
Modified: trunk/reactos/lib/freetype/docs/TODO
Modified: trunk/reactos/lib/freetype/docs/TRUETYPE
Modified: trunk/reactos/lib/freetype/docs/UPGRADE.UNX
Modified: trunk/reactos/lib/freetype/docs/VERSION.DLL
Modified: trunk/reactos/lib/freetype/docs/formats.txt
Modified: trunk/reactos/lib/freetype/docs/license.txt
Modified: trunk/reactos/lib/freetype/docs/modules.txt
Modified: trunk/reactos/lib/freetype/docs/raster.txt
Modified: trunk/reactos/lib/freetype/docs/release
Modified: trunk/reactos/lib/freetype/freetype.def
Modified: trunk/reactos/lib/freetype/freetype.xml
Modified: trunk/reactos/lib/freetype/include/freetype/cache/ftccache.h
Modified: trunk/reactos/lib/freetype/include/freetype/cache/ftcglyph.h
Modified: trunk/reactos/lib/freetype/include/freetype/cache/ftcmru.h
Modified: trunk/reactos/lib/freetype/include/freetype/config/ftconfig.h
Modified: trunk/reactos/lib/freetype/include/freetype/config/ftheader.h
Modified: trunk/reactos/lib/freetype/include/freetype/config/ftmodule.h
Modified: trunk/reactos/lib/freetype/include/freetype/config/ftoption.h
Modified: trunk/reactos/lib/freetype/include/freetype/config/ftstdlib.h
Modified: trunk/reactos/lib/freetype/include/freetype/freetype.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftbdf.h
Added: trunk/reactos/lib/freetype/include/freetype/ftbitmap.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftcache.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftchapters.h
Modified: trunk/reactos/lib/freetype/include/freetype/fterrors.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftgzip.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftimage.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftlzw.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftmac.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftmoderr.h
Added: trunk/reactos/lib/freetype/include/freetype/ftotval.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftoutln.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftpfr.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftrender.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftsizes.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftstroke.h
Modified: trunk/reactos/lib/freetype/include/freetype/fttypes.h
Modified: trunk/reactos/lib/freetype/include/freetype/ftwinfnt.h
Modified: trunk/reactos/lib/freetype/include/freetype/internal/ftcalc.h
Modified:
trunk/reactos/lib/freetype/include/freetype/internal/ftmemory.h
Modified: trunk/reactos/lib/freetype/include/freetype/internal/ftobjs.h
Modified: trunk/reactos/lib/freetype/include/freetype/internal/ftserv.h
Modified:
trunk/reactos/lib/freetype/include/freetype/internal/ftstream.h
Modified: trunk/reactos/lib/freetype/include/freetype/internal/fttrace.h
Added: trunk/reactos/lib/freetype/include/freetype/internal/ftvalid.h
Modified:
trunk/reactos/lib/freetype/include/freetype/internal/internal.h
[truncated at 100 lines; 163 more skipped] 
  _____  

Modified: trunk/reactos/lib/freetype/ChangeLog
--- trunk/reactos/lib/freetype/ChangeLog	2005-07-21 03:26:42 UTC
(rev 16674)
+++ trunk/reactos/lib/freetype/ChangeLog	2005-07-21 04:38:26 UTC
(rev 16675)
@@ -1,3 +1,2006 @@

+2005-06-08  Werner Lemberg  <wl at gnu.org>
+
+
+	* Version 2.1.10 released.
+	==========================
+
+
+	* src/pcf/readme: Renamed to...
+	* src/pcf/README: This.
+
+2005-06-07  Detlef W³rkner  <TetiSoft at apg.lahn.de>
+
+	* builds/amiga/*: Added copyright notes, reworked some comments.
+
+2005-06-05  Werner Lemberg  <wl at gnu.org>
+
+	* Add copyright notices to all files which don't have one.
+
+	* docs/license.txt: Renamed to...
+	* docs/LICENSE.TXT: This.
+	* docs/FTL.txt: Renamed to...
+	* docs/FTL.TXT: This.
+	* docs/GPL.txt: Renamed to...
+	* docs/GPL.TXT: This.
+
+	* docs/PATENTS: Slightly reworded.  Suggested by Sylvain Beucler
+	<beuc at gnu.org>.
+
+2005-06-04  Werner Lemberg  <wl at gnu.org>
+
+	* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
+	FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
+	FT_Outline_CubicToFunc, FT_Raster_RenderFunc),
+	include/freetype/ftrender.h (FT_Glyph_TransformFunc,
+	FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Don't use
+	`const' to stay compatible with FreeType 2.1.9.
+
+2005-06-01  Adam D. Moss  <adam at gimp.org>
+
+	* src/base/ftstroke.c (ft_stroker_inside): Revert `sigma' patch
from
+	2004-07-11; this gives much better results under normal
+	circumstances.
+
+2005-05-30  Chia I Wu  <b90201047 at ntu.edu.tw>
+
+	* include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Minor
+	documentation improvements.
+
+	* include/freetype/ftoutln.h (FT_Outline_Embolden): Fix typos.
+
+	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Add support for
bitmap
+	of pixel_mode FT_PIXEL_MODE_GRAY2 or FT_PIXEL_MODE_GRAY4.
+	If xstr is larger than 8 and bitmap is of pixel_mode
+	FT_PIXEL_MODE_MONO, set xstr to 8 instead of returning error.
+
+2005-05-29  Chia I Wu  <b90201047 at ntu.edu.tw>
+
+	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Fix emboldening
bitmap
+	of mode FT_PIXEL_MODE_GRAY.  Also add support for mode
+	FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V.
+	(ft_bitmap_assure_buffer): FT_PIXEL_MODE_LCD and
FT_PIXEL_MODE_LCD_V
+	should have ppb (pixel per byte) 1.
+	Zero the padding when there's no need to allocate memory.
+
+	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle
slot->advance
+	too.
+	More suited emboldening strength.
+
+2005-05-28  Chia I Wu  <b90201047 at ntu.edu.tw>
+
+	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Handle negative
pitch.
+	Handle FT_PIXEL_MODE_GRAY with num_gray != 256.
+	Improve speed for FT_PIXEL_MODE_GRAY.
+	(ft_bitmap_assure_buffer): Accept FT_PIXEL_MODE_LCD and
+	FT_PIXEL_MODE_LCD_V.
+
+2005-05-27  Chia I Wu  <b90201047 at ntu.edu.tw>
+
+	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Initialize
`error'.
+
+	* src/base/ftobjs.c (ft_cmap_done_internal): New function.
+	(FT_CMap_Done): Remove cmap from cmap list.
+	(destroy_charmaps, FT_CMap_New): Don't call FT_CMap_Done but
+	ft_cmap_done_internal.
+
+2005-05-26  Werner Lemberg  <wl at gnu.org>
+
+	* docs/GPL.txt: Update postal address of FSF.
+
+2005-05-26  Chia I Wu  <b90201047 at ntu.edu.tw>
+
+	* include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Improve
+	documentation.
+
+	* src/base/ftsynth.c (FT_BOLD_THRESHOLD): Removed.
+	(FT_GlyphSlot_Embolden): Check whether slot is bitmap owner.
+	Always modify the metrics.
+
+2005-05-24  Werner Lemberg  <wl at gnu.org>
+
+	* docs/CHANGES: Updated.
+
+2005-05-24  Chia I Wu  <b90201047 at ntu.edu.tw>
+
+	* include/freetype/ftbitmap.h (FT_Bitmap_Embolden): New
declaration.
+
+	* include/freetype/ftoutln.h (FT_Outline_Embolden): New
declaration.
+
+	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): New auxiliary
+	function.
+	(FT_Bitmap_Embolden): New function.
+
+	* src/base/ftoutln.c (FT_Outline_Embolden): New function.
+
+	* src/base/ftsynth.c: Don't include FT_INTERNAL_CALC_H and
+	FT_TRIGONOMETRY_H but FT_BITMAP_H.
+	(FT_GlyphSlot_Embolden): Use FT_Outline_Embolden or
+	FT_Bitmap_Embolden.
+
+2005-05-24  Werner Lemberg  <wl at gnu.org>
+
+	* configure: Always remove config.mk, builds/unix/unix-def.mk,
and
+	builds/unix/unix-cc.mk.  This fixes repeated calls of the
script.
+	Reported by Nelson Beebe and Behdad Esfahbod.
+
+	* README.CVS: Mention file permissions.
+
+2005-05-23  Werner Lemberg  <wl at gnu.org>
+
+	* builds/amiga/makefile.os4 (WARNINGS),
builds/compiler/gcc-dev.mk
+	(CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove
+	-fno-strict-aliasing.
+
+	* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c --
+	it is currently loaded from ttsbit.c.
+
+2005-05-23  Behdad Esfahbod  <behdad at cs.toronto.edu>
+
+	Say you have `(Foo*)x' and want to assign, pass, or return it as
+	`(Bar*)'.  If you simply say `x' or `(Bar*)x', then the C
compiler
+	would warn you that type casting incompatible pointer types
breaks
+	strict-aliasing.  The solution is to cast to `(void*)' instead
which
+	is the generic pointer type, so the compiler knows that it
should
+	make no strict-aliasing assumption on `x'.  But the problem with
+	`(void*)x' is that seems like in C++, unlike C, `void*' is not a
+	generic pointer type and assigning `void*' to `Bar*' without a
cast
+	causes an error.  The solution is to cast to `Bar*' too, with
+	`(Bar*)(void*)x' as the result -- this is what the patch does.
+
+	* include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP),
+	include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove
+	cast on lvalue, use a temporary pointer instead.
+	Cast temporarily to (void*) to not break strict aliasing.
+
+	* include/freetype/internal/ftmemory.h (FT_MEM_ALLOC,
+	FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE),
+	src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to
(void*)
+	to not break strict aliasing.
+
+	* src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information.
+
+	* builds/unix/configure.ac (XX_CFLAGS): Remove
-fno-strict-aliasing.
+
+2005-05-23  David Turner  <dturner at freetype.org>
+
+	Fix Savannah bug #12213 (incorrect behaviour of the cache
sub-system
+	in low-memory conditions).
+
+	* include/freetype/cache/ftccache.h (FTC_CACHE_TRYLOOP,
+	FTC_CACHE_TRYLOOP_END): New macros.
+
+	* src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c
+	(ftc_snode_compare): Use FT_CACHE_TRYLOOP and
FTC_CACE_TRYLOOP_END.
+
+2005-05-23  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/rules.mk (BASE_SRC): Don't add ftsynth.c here but...
+	(BASE_EXT_SRC): Here.
+
+2005-05-22  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/ftrfork.c (raccess_guess_apple_generic): Mark
+	`version_number' and `entry_length' as unused.
+	(raccess_guess_linux_double_from_file_name): Remove `memory'.
+	(raccess_make_file_name): Mark `error' as unused.
+
+	* src/bdf/bdflib.c (_bdf_parse_properties): Remove `memory'.
+
+	* src/cid/cidobjs.c (cid_face_init): Remove `psnames'.
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Remove `memory'.
+
+	* src/truetype/ttgxvar.c (ft_var_readpackedpoints,
+	ft_var_readpackeddeltas, ft_var_load_avar): Mark `error' as
unused.
+
+	* src/base/rules.mk (BASE_SRC): Add ftsynth.c.
+
+2005-05-21  David Turner  <david at freetype.org>
+
+	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix a bug that
+	produced unpleasant artefacts when trying to embolden very sharp
+	corners.
+
+2005-05-20  Werner Lemberg  <wl at gnu.org>
+
+	* docs/CHANGES: Updated.
+
+2005-05-20  Chia I Wu  <b90201047 at ntu.edu.tw>
+
+	* src/base/ftbitmap.c: Don't include FT_FREETYPE_H and
FT_IMAGE_H
+	but FT_BITMAP_H.
+	(FT_Bitmap_Copy): New function (from ftglyph.c).
+
+	* include/freetype/ftbitmap.h (FT_Bitmap_Copy): New public
+	definition.
+
+	* src/base/ftglyph.c: Include FT_BITMAP_H.
+	(ft_bitmap_copy): Move to ftbitmap.c.
+	(ft_bitmap_glyph_init): Remove `memory' variable.
+	Create new bitmap object if FT_GLYPH_OWN_BITMAP isn't set.
+	(ft_bitmap_glyph_copy): Use FT_Bitmap_Copy.
+	(ft_bitmap_glyph_done): Use FT_Bitmap_Done.
+	(ft_outline_glyph_init): Use FT_Outline_Copy.
+
+	* src/base/ftoutln.c (FT_Outline_Copy): Handle source == target.
+	(FT_Outline_Done_Internal): Check for valid `memory' pointer.
+	(FT_Outline_Translate, FT_Outline_Reverse, FT_Outline_Render,
+	FT_Outline_Transform): Check for valid `outline' pointer.
+
+	* src/base/ftobjs.c (FT_New_GlyphSlot): Prepend glyph slot to
+	face->glyph, otherwise a new second glyph slot cannot be
created.
+	(FT_Done_GlyphSlot): Fix memory leak.
+	(FT_Open_Face): Updated -- face->glyph is already managed by
+	FT_New_GlyphSlot.
+
+	* src/type42/t42objs.c (T42_GlyphSlot_Done): Updated.
+
+2005-05-20  Kirill Smelkov  <kirr at mns.spb.ru>
+
+	* include/freetype/ftimage.h (FT_Raster_Params),
+	include/freetype/ftoutln.h (FT_Outline_Translate,
+	FT_Outline_Transform), src/base/ftoutln.c (FT_Outline_Translate,
+	FT_Outline_Transform): Decorate parameters with `const' where
+	appropriate.
+	Update all callers.
+
+	* src/raster/ftraster.c (ft_black_reset), src/smooth/ftgrays.c
+	(gray_raster_reset): Remove `const' from `pool_base' argument.
+
+2005-05-18  Kirill Smelkov  <kirr at mns.spb.ru>
+
+	* src/raster/ftmisc.h: New file.  Only needed if ftraster.c is
+	compiled as stand-alone.
+
+	* src/raster/ftraster.c: Add comment how to compile as
stand-alone.
+	s/FT_CONFIG_OPTION_STATIC_RASTER/FT_STATIC_RASTER/.
+	s/TT_STATIC_RASTER/FT_STATIC_RASTER/.
+	[_STANDALONE_]: Include ftimage.h and ftmisc.h.
+	(FT_TRACE1, FT_TRACE6, ft_memset, FT_MEM_ZERO): Define
+	conditionally.
+	(Render_Glyph, Render_Gray_Glyph): Return Raster_Err_None (or
+	Raster_Err_Unsupported).
+	(ft_black_new) [_STANDALONE_]: Fix type of `the_raster'.
+	(ft_black_init, ft_black_reset, ft_black_set_mode,
ft_black_render):
+	Use `ras', not `raster'.
+	(ft_black_done): Use FT_UNUSED_RASTER.
+	(Horizontal_Sweep_Init, Horizontal_Sweep_Step,
+	Horizontal_Gray_Sweep_Span): Use FT_UNUSED_RASTER.
+
+2005-05-18  Werner Lemberg  <wl at gnu.org>
+
+	* docs/announce: Start updating.
+
+	* docs/CHANGES: Updated.
+
+2005-05-16  Vitaliy Pasternak  <v_a_pasternak at mail.ru>
+
+	* builds/win32/visualc/freetype.vcproj: Updated.
+	Exclude debug info for `Release' versions to reduce library
size.
+
+2005-05-16  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/ftobjs.c (FT_Open_Face): Make it work as documented,
this
+	is, ignore `aface' completely if face_index < 0.  Reported by
David
+	Osborn <spam at habitualhiatus.com>.
+
+2005-05-16  Kirill Smelkov  <kirr at mns.spb.ru>
+
+	* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
+	FT_Outline_LineTo_Func, FT_Outline_ConicToFunc,
+	FT_Outline_CubicToFunc), src/smooth/ftgrays.c
(gray_render_conic,
+	gray_render_cubic, gray_move_to, gray_line_to, gray_conic_to,
+	gray_cubic_to, gray_render_span, gray_sweep): Decorate
parameters
+	with `const' where appropriate.
+
+2005-05-11  Kirill Smelkov  <kirr at mns.spb.ru>
+
+	* include/freetype/ftimage.h (FT_Raster_RenderFunc),
+	include/freetype/ftrender.h (FT_Glyph_TransformFunc,
+	FT_Renderer_Render_Func, FT_Renderer_TransformFunc),
+	src/base/ftglyph.c (ft_outline_glyph_transform),
+	src/raster/ftrend1.c (ft_raster1_transform, ft_raster1_render),
+	src/smooth/ftgrays.c (FT_Outline_Decompose, gray_raster_render),
+	src/smooth/ftsmooth.c (ft_smooth_transform,
+	ft_smooth_render_generic, ft_smooth_render,
ft_smooth_render_lcd,
+	ft_smooth_render_lcd_v): Decorate parameters with `const' where
+	appropriate.
+
+	* src/raster/ftraster.c (RASTER_RENDER_POOL): Removed.
Obsolete.
+	(ft_black_render): Decorate parameters with `const' where
+	appropriate.
+
+2005-05-11  Werner Lemberg  <wl at gnu.org>
+
+	* src/sfnt/ttcmap.c (tt_cmap4_set_range): Fix typo
(FT_PEEK_SHORT ->
+	FT_PEEK_USHORT) which caused crashes.  Reported by Ismail Donmez
+	<ismail at kde.org.tr>.
+
+2005-05-08  Werner Lemberg  <wl at gnu.org>
+
+	* include/freetype/internal/ftserv.h
(FT_FACE_FIND_GLOBAL_SERVICE)
+	[__cplusplus]: Fix typo.
+
+2005-05-07  Werner Lemberg  <wl at gnu.org>
+
+	Handle unsorted SFNT type 4 cmaps correctly (reported by Dirck
+	Blaskey <listtarget at danbala.com>).
+
+	* src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'.
+	* src/sfnt/ttcmac.c: Use SFNT_Err_Ok where appropriate.
+
+	(tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate,
+	tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use
+	`FT_Error' as return type.
+	(tt_cmap4_validate): Use `FT_Error' as return type.
+	Return error code for unsorted cmap.
+	(tt_cmap4_char_index, tt_cmap4_char_next): Use old code for
unsorted
+	cmaps.
+	(tt_face_build_cmaps): Set `unsorted' variable in cmap.
+
+2005-05-07  Werner Lemberg  <wl at gnu.org>
+
+	* src/truetype/ttpload.c (tt_face_get_location): Fix typo.
+
+2005-05-06  Werner Lemberg  <wl at gnu.org>
+
+	* src/cff/cffobjs.c (cff_face_init): Set ppem value in top
+	dictionary for SFNT-based CFF.
+
+2005-05-05  Werner Lemberg  <wl at gnu.org>
+
+	Handle malformed `loca' table entries.
+
+	* docs/TODO: Add some bugs which should be fixed.
+
+	* include/freetype/internal/tttypes.h (TT_FaceRec): Add
`glyf_len'
+	element.
+
+	* src/truetype/ttpload.c (tt_face_load_loca): Get length of
`glyf'
+	table.
+	(tt_face_get_location): Fix computation of `asize' for malformed
+	`loca' entries.
+
+2005-05-01  David Turner  <david at freetype.org>
+
+	* Jamfile: Remove `otvalid' from the list of compiled modules.
+
+	* include/freetype/internal/ftserv.h: Add compiler pragmas to
get
+	rid of annoying warnings with Visual C++ compiler in maximum
warning
+	mode.
+
+	* src/autofit/afhints.c, src/autofit/aflatin.c,
src/base/ftstroke.c,
+	src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c,
+	src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c,
+	src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c,
+	src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: Remove compiler
warnings.
+
+2005-04-28  Werner Lemberg  <wl at gnu.org>
+
+	* docs/TODO: Updated.
+
+2005-04-24  Werner Lemberg  <wl at gnu.org>
+
+	* src/otvalid/otvcommn.c
+	(otv_GSUBGPOS_have_MarkAttachmentType_flag): Handle table == 0.
+
+2005-04-16  Werner Lemberg  <wl at gnu.org>
+
+	* src/cff/cffobjs.c (cff_face_init): Set default upem value in
top
+	font dict also.
+	Handle font matrix settings in subfonts.
+
+	* src/cff/cffgload.c (cff_slot_load): Use the correct font
matrix
+	for CID-keyed fonts with subfonts.
+
+	* docs/formats.txt: Updated.
+
+2005-04-14  Kirill Smelkov  <kirr at mns.spb.ru>
+
+	* include/freetype/freetype.h (FT_Vector_Transform),
+	include/freetype/ftimage.h (FT_Raster_Params),
+	include/freetype/ftoutln.h, src/base/ftoutln.c
(FT_Outline_Get_CBox,
+	FT_Outline_Copy, FT_Outline_Transform, FT_Vector_Transform,
+	FT_Outline_Get_Bitmap), src/raster/ftraster.c (ft_black_render),
+	src/smooth/ftgrays.c (gray_raster_render): Decorate parameters
with
+	`const' where appropriate.
+
+2005-04-14  Werner Lemberg  <wl at gnu.org>
+
+	* src/type1/t1load.c (parse_charstrings): Catch this
non-standard
+	beginning of the /CharStrings dictionary:
+
+	  /CharStrings 118 dict def
+	  Private begin
+	  CharStrings begin
+
+	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix arguments
+	to call of tt_sbit_decoder_load_bitmap.
+
+2005-04-13  Werner Lemberg  <wl at gnu.org>
+
+	* docs/TODO: Updated.
+
+	* autogen.sh: Use `--force' for all commands.
+
+2005-04-09  Werner Lemberg  <wl at gnu.org>
+
+	* src/pshinter/pshalgo.c (ps_hints_apply): Change scaling values
+	only if `fitted' is not zero.
+
+2005-04-06  Werner Lemberg  <wl at gnu.org>
+
+	* src/truetype/ttgload.c (tt_face_get_metrics)
[FT_OPTIMIZE_MEMORY]:
+	Fix typo which sometimes causes wrong metrics for the last
glyph.
+
+2005-04-04  David Turner  <david at freetype.org>
+
+	* devel/ftoption.h, include/freetype/config/ftoption.h
+	(FT_OPTIMIZE_MEMORY): Comment out this macro for the upcoming
2.1.10
+	release.
+	(*_CHESTER_*): Removed.  No longer used.
+
+	* src/autofit/afhints.c (af_axis_hints_new_segment,
+	af_axis_hints_new_edge): Small tweak to use less heap memory.
+
+2005-04-03  Werner Lemberg  <wl at gnu.org>
+
+	* src/type1/t1parse.c (T1_New_Parser): Relax the check for a
valid
+	first line in the font.
+
+2005-04-03  Werner Lemberg  <wl at gnu.org>
+
+	* docs/CHANGES, include/freetype/freetype.h: Improve
documentation
+	of FT_Set_Pixel_Sizes and FT_Set_Char_Size.
+
+2005-03-26  Detlef W³rkner  <TetiSoft at apg.lahn.de>
+
+	* builds/amiga/src/base/ftsystem.c (ft_amiga_stream_io): Fix
buffer
+	offsets after a large read.
+
+2005-03-26  Werner Lemberg  <wl at gnu.org>
+
+	* src/autofit/afglobal.c (af_face_globals_get_metrics):
+	s/index/gidx/.
+
+	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix compiler
+	warnings.
+
+	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
+
+	* src/sfnt/ttsbit0.h: Dummy file for build with `make'.
+
+2005-03-26  Detlef W³rkner  <TetiSoft at apg.lahn.de>
+
+	Update of the Amiga port.
+
+	* builds/amiga/makefile, builds/amiga/makefile.os4,
+	builds/amiga/smakefile: Included the base extension files
+	(ftbitmap.c, ftotval.c, ftpfr.c, ftstroke.c, ftxf86.c).
+
+2005-03-25  Detlef W³rkner  <TetiSoft at apg.lahn.de>
+
+	Update of the Amiga port.
+
+	* builds/amiga/makefile, builds/amiga/smakefile: Handle new
modules.
+
+	* builds/amiga/makefile.os4: Makefile for AmigaOS4 SDK.
+
+	* builds/amiga/README: Updated.
+
+	* builds/amiga/include/freetype/config/ftconfig.h: Handle gcc
for
+	AmigaOS4.
+
+	* builds/amiga/include/freetype/config/ftmodule.h: Handle new
+	modules.
+
+	* builds/amiga/src/base/ftdebug.c: Updated to current version of
+	default ftdebug.c.
+	Add various include files and macros to have proper support for
+	both AmigaOS4 and older AmigaOS versions.
+	Don't declare KVPrintF explicitly.
+	Replace getenv with GetVar.
+	Actually enable debugging code.
+
+	* builds/amiga/src/base/ftsystem.c: Major rewrite.
+
+2005-03-23  Werner Lemberg  <wl at gnu.org>
+
+	* tests/*: Removed.
+
+2005-03-23  Werner Lemberg  <wl at gnu.org>
+
+	* docs/CHANGES, docs/INSTALL.ANY: Updated.
+
+	* include/freetype/ftmoderr.h: Replace `Autohint' with
`Autofit'.
+	Add `OTvalid'.
+
+	* src/autofit/aferrors.h: New file.
+
+	* src/autofit/afglobal.c, src/autofit/afhints.c,
+	src/autofit/aflatin.c, src/autofit/afloader.c:
s/FT_Err_/AF_Err_/.
+	Include aferrors.h.
+
+	* src/autofit/rules.mk (AUTOF_DRV_H): Include aferrors.h.
+
+	* src/otvalid/otverror.h: s/FT_Mod_Err_OTV/FT_Mod_Err_OTvalid/.
+
+2005-03-22  David Turner  <david at freetype.org>
+
+	* src/autohint/*: Removed.
+	* Jamfile: Updated.
+
+2005-03-15  David Turner  <david at freetype.org>
+
+	* src/bdf/bdflib.c: Remove compiler warnings.
+	(hash_rehash, hash_init): Don't call FT_MEM_ZERO.
+	(_bdf_list_t): Add `memory' field.
+	(_bdf_list_init, _bdf_list_done, _bdf_list_ensure): New
functions.
+	(_bdf_shift, _bdf_join): Rename to...
+	(_bdf_list_shift, _bdf_list_join): This.
+	(_bdf_split): Renamed to...
+	(_bdf_list_split): This.  Use new functions.
+	(bdf_internal_readstream): Removed.
+	(NO_SKIP): New macro.
+	(_bdf_readstream): Rewritten.
+	(bdf_create_property, _bdf_add_comment): Improve allocation.
+	(_bdf_set_default_spacing, _bdf_parse_glyphs): Updated.  Improve
+	allocation.
+	(_bdf_parse_properties, _bdf_parse_start): Updated.
+	(bdf_load_font): Updated to use new functions.
+
+	* src/type1/t1parse.c (check_type1_format): New function.
+	(T1_New_Parser): Use it to check font header before allocating
+	anything on the heap.
+
+	* src/type42/t42parse.c	(t42_parser_init): Modify functions to
check
+	the font header before allocating anything on the heap.
+
+	* include/freetype/internal/ftmemory.h (FT_ARRAY_MAX,
+	FT_ARRAY_CHECK): New macros.
+
+	* src/base/ftstream.c (FT_Stream_TryRead): New function.
+	* include/freetype/internal/ftstream.h: Updated.
+
+	* src/pcf/pcfread.c (pcf_read_TOC), src/pcf/pcfutil.c
+	(BitOrderInvert, TwoByteSwap, FourByteSwap): Minor fixes and
+	simplifications.  Try to protect the PCF driver from doing
stupid
+	things with broken fonts.
+
+	* src/lzw/ftlzw.c (FT_Stream_OpenLZW): Check the LZW header
before
+	doing anything else.  This avoids unnecessary heap allocations
+	(400KByte of heap memory for the LZW decoder).
+
+	* src/gzip/ftgzip.c (FT_Stream_OpenGZip): Ditto for the gzip
+	decoder, although the code savings are smaller.
+
+	* docs/CHANGES: Updated.
+
+2005-03-10  David Turner  <david at freetype.org>
+
+	* src/tools/glnames.py: Add comment to explain the compression
+	being used for the Adobe Glyph List.
+
+2005-03-10  Werner Lemberg  <wl at gnu.org>
+
+	* src/truetype/ttpload.c (tt_face_load_cvt, tt_face_load_fpgm):
+	Fix serious typo which prevented correct TT rendering.
+
+	* include/freetype/internal/ftmemory.h: Undo change from
2005-03-03.
+	To suppress warnings it is sufficient to use
`-fno-strict-aliasing'.
+
+2005-03-10  Werner Lemberg  <wl at gnu.org>
+
+	* src/tools/glnames.py: Formatted.
+	Format output to be in sync with other FreeType code.
+	Import `re' and `os.path'.
+	(StringTable) <__init__>: Add parameter to initialize master
table
+	name.
+	(StringTable) <dump>: Don't pass master table name.
+	(StringTable) <dump_sublist>: Emit explanatory comment.
+	Simplify and make output more human readable.
+	(t1_bias, glyph_list, adobe_glyph_names): Removed.  Unused.
+	(main): Use `basename' for file name in header.
+
+	* src/psnames/pstables.h: Regenerated.
+
+2005-03-09  David Turner  <david at freetype.org>
+
+	* src/tools/glnames.py: Rewrite the generator for the
`pstables.h'
+	header file which contains various constant tables related to
glyph
+	names.  It now uses a different, more compact storage scheme
that
+	saves about 20KB.  This also closes Savannah bug #12262.
+
+	* src/psnames/pstables.h: Regenerated.
+
+	* src/psnames/psmodule.c (ps_unicode_value): Use
+	`ft_get_adobe_glyph_index', a new function defined in
`pstables.h'.
+	(ps_get_macintosh_name, ps_get_standard_strings): Updated.
+
+	* src/base/ftobjs.c (FT_Set_Char_Sizes): Handle fractional sizes
+	more carefully.  This fixes Savannah bug #12263.
+
+2005-03-06  David Turner  <david at freetype.org>
+
+	* src/otvalid/otvgsub.c, src/otvalid/otvgpos.c: Make static
tables
+	constant.
+
+	* src/autofit/aflatin.c (af_latin_metrics_init): Fix Savannah
bug
+	#12212 (auto-hinter refuses to work if no Unicode charmap in
font).
+
+2005-03-05  Werner Lemberg  <wl at gnu.org>
+
+	* autogen.sh: New script for bootstrapping.
+
+	* README.CVS: New file which documents bootstrapping.
+
+	* builds/unix/aclocal.m4, builds/unix/config.guess,
+	builds/unix/config.sub, builds/unix/configure,
+	builds/unix/ltmain.sh: Removed.
+
+2005-03-04  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/ftutil.c: Include FT_INTERNAL_OBJECTS_H.
+
+2005-03-03  Werner Lemberg  <wl at gnu.org>
+
+	Various fixes for C and C++ compiling.
+
+	* src/autofit/*: Add copyright messages.
+
+	* src/autofit/afhints.c (af_glyph_hints_done): Don't use
+	`AF_Dimension' but `int' for loop counter.
+
+	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Don't
use
+	`AF_Dimension' but `int' for loop counter.
+	Use proper enumeration value for `render_mode'.
+	(af_latin_metrics_scale_dim): Don't shadow variables.
+	(af_latin_hints_compute_segments): Use proper cast for
`major_dir'
+	and `segment_dir'.
+	(af_latin_align_linked_edge, af_latin_hint_edges): Fix arguments
of call to
+	`af_latin_compute_stem_width'.
+	(af_latin_hints_apply): Don't use `AF_Dimension' but `int' for
loop
+	counter.
+
+	* src/base/ftdbgmem.c (ft_mem_table_get_source, FT_DumpMemory):
Use
+	proper cast for memory allocation.
+
+	* src/cff/cffdrivr.c (cff_get_kerning): Use proper cast for
+	initialization of `sfnt'.
+
+	* src/sfnt/sfdriver.c: Include `ttkern.h'.
+
+	* src/sfnt/ttkern.c (tt_face_get_kerning): Don't shadow
variables.
+
+	* src/truetype/ttgload.c: Include `ttpload.h'.
+
+2005-03-03  David Turner  <david at freetype.org>
+
+	* include/freetype/internal/ftmemory.h (FT_ALLOC, FT_REALLOC,
+	FT_QALLOC, FT_QREALLOC) [gcc >= 3.3]: Provide macro versions
which
+	avoid compiler warnings.
+	(FT_NEW, FT_NEW_ARRAY, FT_RENEW_ARRAY, FT_QNEW, FT_QNEW_ARRAY,
+	FT_QRENEW_ARRAY, FT_ALLOC_ARRAY, FT_REALLOC_ARRAY): Updated.
+
+	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
+	FT_FACE_FIND_GLOBAL_SERVICE, FT_FACE_LOOKUP_SERVICE)
[__cpluscplus]:
+	Provide macro versions which avoid compiler warnings.
+
+	* src/base/ftutil.c (ft_highpow2): New utility function.
+
+	* include/freetype/internal/ftobjs.h: Updated.
+
+	* src/pfr/pfrload.c (pfr_get_gindex, pfr_compare_kern_pairs,
+	pfr_sort_kerning_pairs): Don't define if FT_OPTIMIZE_MEMORY is
set.
+	(pfr_phy_font_done): Don't handle `kern_pairs' if
FT_OPTIMIZE_MEMORY
+	is set.
+	(pfr_phy_font_load): Don't call `pfr_sort_kerning_pairs' if
+	FT_OPTIMIZE_MEMORY is set.
+
+	* src/pfr/pfrobjs.c (pfr_slot_load): Comment out some code which
+	doesn't work with broken fonts.
+	(pfr_face_get_kerning) [FT_OPTIMIZE_MEMORY]: Implement.
+
+	* src/pfr/pfrtypes.h (PFR_KernItemRec): Optimize member types.
+	(PFR_NEXT_KPAIR): New macro.
+	(PFR_PhyFontRec): Don't define `kern_pairs' if
FT_OPTIMIZE_MEMORY is
+	set.
+
+	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Introduce
+	temporary variable to avoid gcc warning.
+	(tt_face_load_sbit_image): Mark unused variables with FT_UNUSED.
+
+	* src/truetype/ttpload.c (tt_face_load_loca)
[FT_OPTIMIZE_MEMORY]:
+	Remove redundant variable.
+
+	* include/freetype/config/ftmodule.h: Moving the order of
drivers to
+	speed up font loading.  The PCF and BDF loaders are still slow
and
+	consume far too much memory.
+
+2005-03-03  Werner Lemberg  <wl at gnu.org>
+
+	* devel/ftoption.h: Updated to recent changes.
+
+2005-03-02  Werner Lemberg  <wl at gnu.org>
+
+	* src/autofit/afdummy.c, src/autofit/afdummy.h
+	(af_dummy_script_class): Fix type.
+
+	* src/autofit/aflatin.c, src/autofit/aflatin.h
+	(af_latin_script_class): Fix type.
+
+	* src/autofit/rules.mk (AUTOF_DRV_SRC): Fix typo.
+
+2005-03-01  David Turner  <david at freetype.org>
+
+	* src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning),
+	src/sfnt/ttsbit0.c (tt_face_load_sbit_strikes,
+	tt_sbit_decoder_load_byte_aligned,
tt_sbit_decoder_load_compound,
+	tt_sbit_decoder_load_image), src/sfnt/ttload.c
+	(tt_face_load_metrics): Remove compiler warnings
+	-- redundant variables, missing initializations, etc.
+
+	* src/sfnt/ttsbit.h: Handle FT_OPTIMIZE_MEMORY.
+
+	* src/autofit/rules.mk, src/autofit/module.mk,
+	src/autofit/afangles.h: New files.
+
+	* src/autofit/afhints.c (af_axis_hints_new_segment,
+	af_axis_hints_new_edge): New functions.
+	(af_glyph_hints_done): Do proper deallocation.
+	(af_glyph_hints_reload): Only reallocate points array.  This
+	drastically reduces heap usage.
+
+	* src/autofit/afhints.h (AF_PointRec, AF_SegmentRec): Optimize
+	member types and positions.
+	(AF_AxisHintsRec): Add `max_segments' and `max_edges'.
+	(af_axis_hints_new_segment, af_axis_hints_new_edge): New
prototypes.
+
+	* src/autofit/aflatin.c (af_latin_metricsc_scale): Don't call
+	AF_SCALER_EQUAL_SCALES.
+	(af_latin_hints_compute_segments): Change return type to
FT_Error.
+	Update all callers.
+	Improve segment allocation.
+	(af_latin_hints_compute_edges): Change return type to FT_Error.
+	Update all callers.
+	Improve edge allocation and link handling.
+	(af_latin_hints_detect_features): Change return type to
FT_Error.
+	Update all callers.
+
+	* src/autofit/aflatin.h: Updated.
+
+	* src/autofit/afloader.c (af_loader_load_g)
+	<FT_GLYPH_FORMAT_OUTLINE>: Assure axis->num_edges > 1.  This
fixes
+	a bug with certain fonts.
+
+	* include/freetype/config/ftmodule.h: The auto-fitter is now the
+	only supported auto-hinting module.
+
+	* include/freetype/config/ftstdlib.h (FT_INT_MAX): New macro.
+
+2005-02-28  Werner Lemberg  <wl at gnu.org>
+
+	* src/truetype/ttpload.c (tt_face_load_loca): Fix typo.
+
+	* src/sfnt/ttkern.c: Include `ttkern.h'.
+	(FT_COMPONENT): Updated.
+
+	* include/freetype/internal/fttrace.h: Add entry for `ttkern'.
+
+	* src/sfnt/ttsbit0.c: s/FT_Err_/SFNT_Err_/.
+	Decorate constants with `U' and `L' where necessary.
+
+	* src/sfnt/ttcmap.c (tt_cmap4_next): Remove unused variable.
+
+2005-02-28  David Turner  <david at freetype.org>
+
+	* src/base/ftdbgmem.c (FT_DumpMemory): Added sorting of memory
+	sources according to decreasing maximum cumulative allocations.
+	(ft_mem_source_compare): New auxiliary function.
+
+	* src/sfnt/ttsbit0.c: New file, implementing a heap-optimized
+	embedded bitmap loader.
+
+	* src/sfnt/ttsbit.c: Include `ft2build.h', FT_INTERNAL_DEBUG_H,
+	FT_INTERNAL_STREAM_H, FT_TRUETYPE_TAGS_H.
+	Load `ttsbit0.c' if FT_OPTIMIZE_MEMORY is set, otherwise use
+	file contents.
+	(tt_face_load_sbit_strikes): Set up root fields to indicate the
+	strikes.  This fixes Savannah bug #12107.
+	Use `static' keyword for `sbit_line_metrics_field',
+	`strike_start_fields', `strike_end_fields'.
+
+	* include/freetype/internal/tttypes.h (TT_FaceRec): Define
+	`sbit_table', `sbit_table_size', `sbit_num_strikes' if
+	FT_OPTIMIZE_MEMORY is set.
+	Don't define `num_sbit_strikes' and `sbit_strikes' if
+	FT_OPTIMIZE_MEMORY is set.
+
+	* src/cff/cffobjs.c (sbit_size_reset): Handle
FT_OPTIMIZE_MEMORY.
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Fixed bug that prevented
+	loading SFNT fonts without a `kern' table.
+	Properly pass root->face_flags.
+	Remove code for TT_CONFIG_OPTION_EMBEDDED_BITMAPS.
+
+	* src/sfnt/sfdriver.c (sfnt_interface)
+	[TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Don't use
`tt_find_sbit_image'
+	and `tt_load_sbit_metrics'.
+
+	* src/sfnt/ttcmap.c: Optimize linear charmap scanning for Format
4.
+	(OPT_CMAP4): New macro.
+	(TT_CMap4Rec) [OPT_CMAP4]: New structure.
+	(tt_cmap4_init, tt_cmap4_set_range, tt_cmap4_next,
tt_cmap4_reset)
+	[OPT_CMAP4]: New functions.
+	(tt_cmap4_char_next) [OPT_CMAP4]: Use `tt_cmap4_next' and
+	`tt_cmap4_reset'.
+	(tt_cmap4_class_rec) [OPT_CMAP4]: Use `TT_CMap4Rec' and
+	`tt_cmap4_init'.
+
+	* src/truetype/ttobjs.c (Reset_SBit_Size): Handle
+	FT_OPTIMIZE_MEMORY.
+
+	* src/autofit/afhints.h (AF_PointRec, AF_SegmentRec,
AF_EdgeRec):
+	Optimize member types.
+
+	* src/autofit/afloader.c (af_loader_done): Call
+	`af_glyph_hints_done'.
+
+2005-02-27  David Turner  <david at freetype.org>
+
+	* src/sfnt/ttkern.c (tt_face_load_kern): Fix a small bug which
+	caused invalid (random) return values for the horizontal
kerning.
+
+2005-02-25  David Turner  <david at freetype.org>
+
+	Implement several memory optimizations to drastically reduce the
+	heap usage of FreeType, especially in the case of memory-mapped
+	files.  The idea is to avoid loading and decoding tables in the
+	heap, and instead access the raw data whenever possible (i.e.,
when
+	it doesn't compromise performance).
+
+	This has several benefits: For example, opening vera.ttf now
uses
+	just a small amount of memory (even when the FT_Library
footprint is
+	accounted for), until you start loading glyphs.  Even then, you
save
+	at least 20KB compared to the non-optimized case.  Performance
of
+	various operations, including open and close, has also been
+	dramatically improved.
+
+	More optimizations to come, especially for the auto-hinter.
+
+	* include/freetype/internal/sfnt.h (TT_Face_GetKerningFunc): New
+	function type.
+	(SFNT_Interface): Add it.
+
+	* include/freetype/internal/tttypes.h (TT_HdmxEntryRec,
TT_HdmxRec,
+	TT_Kern0_PairRec): Don't define if FT_OPTIMIZE_MEMORY is set.
+	(TT_FaceRec): Define `horz_metrics', `horz_metrics_size',
+	`vert_metrics', `vert_metrics_size', `hdmx_table',
+	`hdmx_table_size', `hdmx_record_count', `hdmx_record_size',
+	`hdmx_record_sizes', `kern_table', `kern_table_size,
+	`num_kern_tables', `kern_avail_bits', `kern_order_bits' if
+	FT_OPTIMIZE_MEMORY is set.
+	Don't define `hdmx', `num_kern_pairs', `kern_table_index',
+	`kern_pairs' if FT_OPTIMIZE_MEMORY is set.
+
+	* src/base/ftdbgmem.c (ft_mem_table_set): Don't shadow variable.
+	Fix compiler warning.
+
+	* src/cff/cffdrivr.c (Get_Kerning): Renamed to...
+	(cff_get_kerning): This.  Simplify.
+	(cff_driver_class): Updated.
+
+	* src/sfnt/Jamfile (_sources): Add `ttkern'.
+	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttkern.c'.
+
+	* src/sfnt/sfdriver.c (sfnt_interface): Add
`tt_face_get_kerning'.
+
+	* src/sfnt/sfnt.c: Include `ttkern.c'.
+
+	* src/sfnt/sfobjs.c: Include `ttkern.h'.
+	(sfnt_load_face): Consider the `kern' and `gasp' table as
optional.
+	(sfnt_done_face): Call `tt_face_done_kern'.
+	Handle horizontal metrics for FT_OPTIMIZE_MEMORY.
+
+	* src/sfnt/ttkern.c, src/sfnt/ttkern.h: New files.  Code has
been
+	taken from `ttload.c' and `ttload.h'.
+	Provide special versions of `tt_face_load_kern',
+	`tt_face_get_kerning', and `tt_face_done_kern' for
+	FT_OPTIMIZE_MEMORY.
+
+	* src/sfnt/ttload.c (tt_face_load_metrics, tt_face_load_hdmx,
+	tt_face_free_hdmx): Provide version for FT_OPTIMIZE_MEMORY.
+	(tt_face_load_kern, tt_kern_pair_compare, TT_KERN_INDEX): Moved
to
+	`ttkern.c'.
+
+	* src/sfnt/ttload.h: Updated.
+
+	* src/sfnt/ttsbit.c (sbit_metrics_field): Add `static' keyword.
+
+	* src/truetype/ttdriver.c (Get_Kerning): Renamed to...
+	(tt_get_kerning): This.  Simplify.
+	(tt_driver_class): Updated.
+
+	* src/truetype/ttgload.c (TT_Get_Metrics): Renamed to...
+	(tt_face_get_metrics): This. Provide version for
FT_OPTIMIZE_MEMORY.
+	Update all callers.
+	(Get_Advance_Widths): Replaced with...
+	(Get_Advance_WidthPtr): This.  Provide version for
+	FT_OPTIMIZE_MEMORY.
+	Update all callers.
+
+	* src/truetype/ttgload.h: Updated.
+
+2005-02-22  David Turner  <david at freetype.org>
+
+	* src/base/ftdbgmem.c: Partly rewritten.  Added the ability to
list
+	all allocation sites in the memory debugger.  Also a new
function
+	FT_DumpMemory() was added.  It is only available in builds with
+	FT_DEBUG_MEMORY defined, and you must declare it in your own
code to
+	use it, i.e., with something like:
+
+	  extern void FT_DumpMemory( FT_Memory );
+
+	  ...
+
+	  FT_DumpMemory( memory );
+
+	* include/freetype/config/ftoption.h
+	(TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Comment out definition
--
+	again.
+	(FT_OPTIMIZE_MEMORY): New configuration macro to control various
+	optimizations for reducing the heap footprint of memory-mapped
+	TrueType files.
+
+	* include/freetype/internal/ftmemory.h (FT_ARRAY_ZERO): New
+	convenience macro.
+
+	* include/freetype/internal/tttypes.h (TT_FaceRec)
+	[FT_OPTIMIZE_MEMORY]: Use optimized types for `num_locations'
and
+	`glyph_locations'.
+
+	* src/truetype/ttgload.c (load_truetype_glyph): Call
+	`tt_face_get_location'.
+
+	* src/truetype/ttobjs.c (tt_face_init)
+	[FT_CONFIG_OPTION_INCREMENTAL]: Improve error handling.
+	(tt_face_done): Call `tt_face_done_loca'.
+
+	* src/truetype/ttpload.c (tt_face_get_location,
tt_face_done_loca):
+	New functions.  If FT_OPTIMIZE_MEMORY is set, the locations
table is
+	read directly from memory-mapped streams, instead of being
decoded
+	into the heap.
+	(tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: New implementation.
+	(tt_face_load_cvt, tt_face_load_fpgm): Only load table if the
+	bytecode interpreter is compiled in.
+
+	* src/truetype/ttpload.h: Updated.
+
+	* src/autohint/ahglyph.c (ah_outline_load): Improve allocation
+	logic.
+
+2005-02-20  Werner Lemberg  <wl at gnu.org>
+
+	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
+	--copy' from libtool 1.5.14.
+	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
+	automake 1.9.4.
+
+	* builds/unix/config.guess, builds/unix/config.sub: Updated from
+	`config' CVS module at subversions.gnu.org.
+
+	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated
from
+	`texinfo' CVS module at subversions.gnu.org.
+
+2005-02-14  Werner Lemberg  <wl at gnu.org>
[truncated at 1000 lines; 56801 more skipped] 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20050721/1618b102/attachment.html


More information about the Ros-diffs mailing list