[FREETYPE] Update to v2.5.5. CORE-8888
[reactos.git] / reactos / lib / 3rdparty / freetype / src / cache / ftcmanag.c
index 4eb2c5b..fff7a08 100644 (file)
@@ -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,       */
   }
 
 
-  FT_CALLBACK_TABLE_DEF
+  static
   const FTC_MruListClassRec  ftc_size_list_class =
   {
     sizeof ( FTC_SizeNodeRec ),
     FTC_MruNode  mrunode;
 
 
-    if ( asize == NULL )
+    if ( !asize || !scaler )
       return FT_THROW( Invalid_Argument );
 
     *asize = NULL;
   }
 
 
-  FT_CALLBACK_TABLE_DEF
+  static
   const FTC_MruListClassRec  ftc_face_list_class =
   {
     sizeof ( FTC_FaceNodeRec),
     FTC_MruNode  mrunode;
 
 
-    if ( aface == NULL )
+    if ( !aface || !face_id )
       return FT_THROW( Invalid_Argument );
 
     *aface = NULL;
     if ( !library )
       return FT_THROW( Invalid_Library_Handle );
 
+    if ( !amanager || !requester )
+      return FT_THROW( Invalid_Argument );
+
     memory = library->memory;
 
     if ( FT_NEW( manager ) )
   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 );
   }
   {
     FT_UInt  nn;
 
+
+    if ( !manager || !face_id )
+      return;
+
     /* this will remove all FTC_SizeNode that correspond to
      * the face_id as well
      */
   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--;
   }