diff options
author | David Turner <david@freetype.org> | 2000-10-28 23:34:45 +0000 |
---|---|---|
committer | David Turner <david@freetype.org> | 2000-10-28 23:34:45 +0000 |
commit | ece6379859b2275bec4d39df2e9eb9443fb94a68 (patch) | |
tree | 9bc6e5abea7151003d3607c5457ac615f567aed0 /src/cache/ftcmanag.c | |
parent | b5084e11f7d2d73e0687dee6314c560b8fe6d4cb (diff) | |
download | freetype2-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.c | 16 |
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; } |