diff options
author | John-Mark Bell <jmb@netsurf-browser.org> | 2022-05-22 03:10:13 +0100 |
---|---|---|
committer | John-Mark Bell <jmb@netsurf-browser.org> | 2022-05-22 03:10:13 +0100 |
commit | 20e35970679f5aab5a4dd8e60747af24ddac998f (patch) | |
tree | 9235aa0af0d39c73175e57cea2e22373e12cbe5a | |
parent | 8cd266be4e1e610573fd81a875a7479cebb2edfe (diff) | |
download | librufl-20e35970679f5aab5a4dd8e60747af24ddac998f.tar.gz librufl-20e35970679f5aab5a4dd8e60747af24ddac998f.tar.bz2 |
Add checks for reinitialising library.
This will cause the second initialisation attempt to load the
cache file. In doing so, we discover that cache loading on
non-32bit platforms didn't work -- fix that, too.
-rw-r--r-- | src/rufl_init.c | 2 | ||||
-rw-r--r-- | src/rufl_quit.c | 12 | ||||
-rw-r--r-- | test/oldfminit.c | 8 | ||||
-rw-r--r-- | test/olducsinit.c | 8 | ||||
-rw-r--r-- | test/ucsinit.c | 8 |
5 files changed, 33 insertions, 5 deletions
diff --git a/src/rufl_init.c b/src/rufl_init.c index 13b9509..40eb00f 100644 --- a/src/rufl_init.c +++ b/src/rufl_init.c @@ -1590,7 +1590,7 @@ rufl_code rufl_load_cache(void) struct rufl_font_list_entry *entry; struct rufl_character_set *charset = NULL, *cur_charset; struct rufl_unicode_map *umap = NULL; - unsigned int num_umaps = 0; + size_t num_umaps = 0; fp = rufl_open_cache("rb"); if (!fp) diff --git a/src/rufl_quit.c b/src/rufl_quit.c index e2daa8c..039229c 100644 --- a/src/rufl_quit.c +++ b/src/rufl_quit.c @@ -33,23 +33,27 @@ void rufl_quit(void) } } free(rufl_font_list); - rufl_font_list = 0; + rufl_font_list = NULL; + rufl_font_list_entries = 0; for (i = 0; i != rufl_family_list_entries; i++) free((void *) rufl_family_list[i]); free(rufl_family_list); free(rufl_family_map); - rufl_family_list = 0; + rufl_family_map = NULL; + rufl_family_list = NULL; + rufl_family_list_entries = 0; for (i = 0; i != rufl_CACHE_SIZE; i++) { if (rufl_cache[i].font != rufl_CACHE_NONE) { xfont_lose_font(rufl_cache[i].f); rufl_cache[i].font = rufl_CACHE_NONE; } - } + } + rufl_cache_time = 0; free(rufl_family_menu); - rufl_family_menu = 0; + rufl_family_menu = NULL; rufl_substitution_table_fini(); } diff --git a/test/oldfminit.c b/test/oldfminit.c index 1df8880..23eb501 100644 --- a/test/oldfminit.c +++ b/test/oldfminit.c @@ -96,6 +96,14 @@ int main(int argc, const char **argv) rufl_quit(); + /* Reinit -- should load cache */ + assert(rufl_OK == rufl_init()); + assert(NULL == rufl_fm_error); + assert(3 == rufl_family_list_entries); + assert(NULL != rufl_family_menu); + /* Done for real this time */ + rufl_quit(); + printf("PASS\n"); return 0; diff --git a/test/olducsinit.c b/test/olducsinit.c index 1d5462b..aa2d874 100644 --- a/test/olducsinit.c +++ b/test/olducsinit.c @@ -96,6 +96,14 @@ int main(int argc, const char **argv) rufl_quit(); + /* Reinit -- should load cache */ + assert(rufl_OK == rufl_init()); + assert(NULL == rufl_fm_error); + assert(3 == rufl_family_list_entries); + assert(NULL != rufl_family_menu); + /* Done for real this time */ + rufl_quit(); + printf("PASS\n"); return 0; diff --git a/test/ucsinit.c b/test/ucsinit.c index 44f70cb..c0fc06f 100644 --- a/test/ucsinit.c +++ b/test/ucsinit.c @@ -96,6 +96,14 @@ int main(int argc, const char **argv) rufl_quit(); + /* Reinit -- should load cache */ + assert(rufl_OK == rufl_init()); + assert(NULL == rufl_fm_error); + assert(3 == rufl_family_list_entries); + assert(NULL != rufl_family_menu); + /* Done for real this time */ + rufl_quit(); + printf("PASS\n"); return 0; |