summaryrefslogtreecommitdiff
path: root/src/cache/ftcmanag.c
diff options
context:
space:
mode:
authorDavid Turner <david@freetype.org>2000-10-28 23:34:45 +0000
committerDavid Turner <david@freetype.org>2000-10-28 23:34:45 +0000
commitece6379859b2275bec4d39df2e9eb9443fb94a68 (patch)
tree9bc6e5abea7151003d3607c5457ac615f567aed0 /src/cache/ftcmanag.c
parentb5084e11f7d2d73e0687dee6314c560b8fe6d4cb (diff)
downloadfreetype2-ece6379859b2275bec4d39df2e9eb9443fb94a68.tar.gz
completed the sbit cache, though it's still buggy :-(
major reformatting of the cache subsystem (again) added substantial documentation too in header files
Diffstat (limited to 'src/cache/ftcmanag.c')
-rw-r--r--src/cache/ftcmanag.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/cache/ftcmanag.c b/src/cache/ftcmanag.c
index fe4664a0f..e1a9412ad 100644
--- a/src/cache/ftcmanag.c
+++ b/src/cache/ftcmanag.c
@@ -54,7 +54,8 @@
{
/* destroy initial size object; it will be re-created later */
face = (FT_Face)node->root.data;
- FT_Done_Size( face->size );
+ if (face->size)
+ FT_Done_Size( face->size );
}
return error;
@@ -310,6 +311,7 @@
FT_Lru_Reset( manager->sizes_lru );
FT_Lru_Reset( manager->faces_lru );
}
+ /* FIXME: flush the caches ?? */
}
@@ -400,15 +402,23 @@
manager->num_bytes -= clazz->size_node( cache_node,
- cache->cache_user );
+ cache->cache_data );
- clazz->destroy_node( cache_node, cache->cache_user );
+ clazz->destroy_node( cache_node, cache->cache_data );
}
else
{
/* this should never happen! */
FT_ERROR(( "FTC_Manager_Compress: Cache Manager is corrupted!\n" ));
}
+
+ /* check, just in case of general corruption :-) */
+ if (manager->num_nodes <= 0)
+ {
+ FT_ERROR(( "FTC_Manager_Compress: invalid cache node count !!\n" ));
+ }
+ else
+ manager->num_nodes--;
}
node = prev;
}