From 47ed6413ce8f2586b8d542dc46055e075a47022e Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 6 Aug 2010 10:14:25 +0000 Subject: Updated to freetype 2.4.1 --- freetype/src/cache/ftcbasic.c | 4 ++-- freetype/src/cache/ftccache.c | 6 +++--- freetype/src/cache/ftccache.h | 6 +++--- freetype/src/cache/ftccmap.c | 29 ++++++++++++++--------------- freetype/src/cache/ftcimage.c | 4 ++-- freetype/src/cache/ftcmanag.c | 4 ++-- freetype/src/cache/ftcmru.h | 4 ++-- freetype/src/cache/ftcsbits.c | 6 +++--- 8 files changed, 31 insertions(+), 32 deletions(-) (limited to 'freetype/src/cache') diff --git a/freetype/src/cache/ftcbasic.c b/freetype/src/cache/ftcbasic.c index ebc8871cc..9fb6ddb1e 100644 --- a/freetype/src/cache/ftcbasic.c +++ b/freetype/src/cache/ftcbasic.c @@ -4,7 +4,7 @@ /* */ /* The FreeType basic cache interface (body). */ /* */ -/* Copyright 2003, 2004, 2005, 2006, 2007, 2009 by */ +/* Copyright 2003, 2004, 2005, 2006, 2007, 2009, 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -834,7 +834,7 @@ if ( !desc ) - return FT_Err_Invalid_Argument; + return FTC_Err_Invalid_Argument; ftc_image_type_from_old_desc( &type0, desc ); diff --git a/freetype/src/cache/ftccache.c b/freetype/src/cache/ftccache.c index 463addd99..67affeacb 100644 --- a/freetype/src/cache/ftccache.c +++ b/freetype/src/cache/ftccache.c @@ -4,7 +4,7 @@ /* */ /* The FreeType internal cache interface (body). */ /* */ -/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 by */ +/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -485,13 +485,13 @@ FTC_Node* bucket; FTC_Node* pnode; FTC_Node node; - FT_Error error = 0; + FT_Error error = FTC_Err_Ok; FTC_Node_CompareFunc compare = cache->clazz.node_compare; if ( cache == NULL || anode == NULL ) - return FT_Err_Invalid_Argument; + return FTC_Err_Invalid_Argument; idx = hash & cache->mask; if ( idx < cache->p ) diff --git a/freetype/src/cache/ftccache.h b/freetype/src/cache/ftccache.h index 2082bc4f4..1b695849c 100644 --- a/freetype/src/cache/ftccache.h +++ b/freetype/src/cache/ftccache.h @@ -4,7 +4,7 @@ /* */ /* FreeType internal cache interface (specification). */ /* */ -/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 by */ +/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -205,7 +205,7 @@ FT_BEGIN_HEADER FT_UFast _idx; \ \ \ - error = 0; \ + error = FTC_Err_Ok; \ node = NULL; \ _idx = _hash & _cache->mask; \ if ( _idx < _cache->p ) \ @@ -288,7 +288,7 @@ FT_BEGIN_HEADER #define FTC_CACHE_TRYLOOP_END() \ - if ( !error || error != FT_Err_Out_Of_Memory ) \ + if ( !error || error != FTC_Err_Out_Of_Memory ) \ break; \ \ _try_done = FTC_Manager_FlushN( _try_manager, _try_count ); \ diff --git a/freetype/src/cache/ftccmap.c b/freetype/src/cache/ftccmap.c index a802b0557..121049207 100644 --- a/freetype/src/cache/ftccmap.c +++ b/freetype/src/cache/ftccmap.c @@ -4,7 +4,8 @@ /* */ /* FreeType CharMap cache (body) */ /* */ -/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by */ +/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, */ +/* 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -153,7 +154,7 @@ FTC_CMapQuery query = (FTC_CMapQuery)ftcquery; FT_Error error; FT_Memory memory = cache->memory; - FTC_CMapNode node; + FTC_CMapNode node = NULL; FT_UInt nn; @@ -310,19 +311,11 @@ #ifdef FT_CONFIG_OPTION_OLD_INTERNALS /* - * Detect a call from a rogue client that thinks it is linking - * to FreeType 2.1.7. This is possible because the third parameter - * is then a character code, and we have never seen any font with - * more than a few charmaps, so if the index is very large... - * - * It is also very unlikely that a rogue client is interested - * in Unicode values 0 to 15. - * - * NOTE: The original threshold was 4, but we found a font from the - * Adobe Acrobat Reader Pack, named `KozMinProVI-Regular.otf', - * which contains more than 5 charmaps. + * If cmap_index is greater than the maximum number of cachable + * charmaps, we assume the request is from a legacy rogue client + * using old internal header. See include/config/ftoption.h. */ - if ( cmap_index >= 16 && !no_cmap_change ) + if ( cmap_index > FT_MAX_CHARMAP_CACHEABLE && !no_cmap_change ) { FTC_OldCMapDesc desc = (FTC_OldCMapDesc) face_id; @@ -384,7 +377,7 @@ /* something rotten can happen with rogue clients */ if ( (FT_UInt)( char_code - FTC_CMAP_NODE( node )->first >= FTC_CMAP_INDICES_MAX ) ) - return 0; + return 0; /* XXX: should return appropriate error */ gindex = FTC_CMAP_NODE( node )->indices[char_code - FTC_CMAP_NODE( node )->first]; @@ -401,6 +394,12 @@ if ( error ) goto Exit; +#ifdef FT_MAX_CHARMAP_CACHEABLE + /* something rotten can happen with rogue clients */ + if ( cmap_index > FT_MAX_CHARMAP_CACHEABLE ) + return 0; /* XXX: should return appropriate error */ +#endif + if ( (FT_UInt)cmap_index < (FT_UInt)face->num_charmaps ) { FT_CharMap old, cmap = NULL; diff --git a/freetype/src/cache/ftcimage.c b/freetype/src/cache/ftcimage.c index 417daf2aa..c242ece02 100644 --- a/freetype/src/cache/ftcimage.c +++ b/freetype/src/cache/ftcimage.c @@ -4,7 +4,7 @@ /* */ /* FreeType Image cache (body). */ /* */ -/* Copyright 2000-2001, 2003, 2004, 2006 by */ +/* Copyright 2000-2001, 2003, 2004, 2006, 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -61,7 +61,7 @@ { FT_Memory memory = cache->memory; FT_Error error; - FTC_INode inode; + FTC_INode inode = NULL; if ( !FT_NEW( inode ) ) diff --git a/freetype/src/cache/ftcmanag.c b/freetype/src/cache/ftcmanag.c index f2a298e7d..548ebe951 100644 --- a/freetype/src/cache/ftcmanag.c +++ b/freetype/src/cache/ftcmanag.c @@ -4,7 +4,7 @@ /* */ /* FreeType Cache Manager (body). */ /* */ -/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009 by */ +/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -670,7 +670,7 @@ * the face_id as well */ FTC_MruList_RemoveSelection( &manager->faces, - (FTC_MruNode_CompareFunc)NULL, + ftc_face_node_compare, face_id ); for ( nn = 0; nn < manager->num_caches; nn++ ) diff --git a/freetype/src/cache/ftcmru.h b/freetype/src/cache/ftcmru.h index 5739439f4..8c3797fb0 100644 --- a/freetype/src/cache/ftcmru.h +++ b/freetype/src/cache/ftcmru.h @@ -4,7 +4,7 @@ /* */ /* Simple MRU list-cache (specification). */ /* */ -/* Copyright 2000-2001, 2003, 2004, 2005, 2006 by */ +/* Copyright 2000-2001, 2003, 2004, 2005, 2006, 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -166,7 +166,7 @@ FT_BEGIN_HEADER FTC_MruNode _first, _node; \ \ \ - error = 0; \ + error = FTC_Err_Ok; \ _first = *(_pfirst); \ _node = NULL; \ \ diff --git a/freetype/src/cache/ftcsbits.c b/freetype/src/cache/ftcsbits.c index 60d46aa7a..07a4641a8 100644 --- a/freetype/src/cache/ftcsbits.c +++ b/freetype/src/cache/ftcsbits.c @@ -4,7 +4,7 @@ /* */ /* FreeType sbits manager (body). */ /* */ -/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2009 by */ +/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -191,7 +191,7 @@ sbit->width = 255; sbit->height = 0; sbit->buffer = NULL; - error = 0; + error = FTC_Err_Ok; if ( asize ) *asize = 0; } @@ -218,7 +218,7 @@ total = clazz->family_get_count( family, cache->manager ); if ( total == 0 || gindex >= total ) { - error = FT_Err_Invalid_Argument; + error = FTC_Err_Invalid_Argument; goto Exit; } -- cgit v1.2.3