aboutsummaryrefslogtreecommitdiff
path: root/freetype/src/cache/ftcmanag.c
diff options
context:
space:
mode:
Diffstat (limited to 'freetype/src/cache/ftcmanag.c')
-rw-r--r--freetype/src/cache/ftcmanag.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/freetype/src/cache/ftcmanag.c b/freetype/src/cache/ftcmanag.c
index 1df1775f2..41390ba95 100644
--- a/freetype/src/cache/ftcmanag.c
+++ b/freetype/src/cache/ftcmanag.c
@@ -4,7 +4,7 @@
/* */
/* FreeType Cache Manager (body). */
/* */
-/* Copyright 2000-2006, 2008-2010, 2013 by */
+/* Copyright 2000-2006, 2008-2010, 2013, 2014 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -151,7 +151,7 @@
}
- FT_CALLBACK_TABLE_DEF
+ static
const FTC_MruListClassRec ftc_size_list_class =
{
sizeof ( FTC_SizeNodeRec ),
@@ -186,7 +186,7 @@
FTC_MruNode mrunode;
- if ( asize == NULL )
+ if ( !asize || !scaler )
return FT_THROW( Invalid_Argument );
*asize = NULL;
@@ -290,7 +290,7 @@
}
- FT_CALLBACK_TABLE_DEF
+ static
const FTC_MruListClassRec ftc_face_list_class =
{
sizeof ( FTC_FaceNodeRec),
@@ -313,7 +313,7 @@
FTC_MruNode mrunode;
- if ( aface == NULL )
+ if ( !aface || !face_id )
return FT_THROW( Invalid_Argument );
*aface = NULL;
@@ -366,6 +366,9 @@
if ( !library )
return FT_THROW( Invalid_Library_Handle );
+ if ( !amanager || !requester )
+ return FT_THROW( Invalid_Argument );
+
memory = library->memory;
if ( FT_NEW( manager ) )
@@ -451,11 +454,11 @@
FT_EXPORT_DEF( void )
FTC_Manager_Reset( FTC_Manager manager )
{
- if ( manager )
- {
- FTC_MruList_Reset( &manager->sizes );
- FTC_MruList_Reset( &manager->faces );
- }
+ if ( !manager )
+ return;
+
+ FTC_MruList_Reset( &manager->sizes );
+ FTC_MruList_Reset( &manager->faces );
FTC_Manager_FlushN( manager, manager->num_nodes );
}
@@ -667,6 +670,10 @@
{
FT_UInt nn;
+
+ if ( !manager || !face_id )
+ return;
+
/* this will remove all FTC_SizeNode that correspond to
* the face_id as well
*/
@@ -685,7 +692,9 @@
FTC_Node_Unref( FTC_Node node,
FTC_Manager manager )
{
- if ( node && (FT_UInt)node->cache_index < manager->num_caches )
+ if ( node &&
+ manager &&
+ (FT_UInt)node->cache_index < manager->num_caches )
node->ref_count--;
}