diff options
author | Florian Weimer <fweimer@redhat.com> | 2022-05-23 10:08:18 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2022-05-23 11:06:31 +0200 |
commit | bbebe83a2874cd25934046d908824dfc11711a2b (patch) | |
tree | 1e4b6818e4fc8c35996da79471d55048095f7650 /locale/localeinfo.h | |
parent | 0b6342e769be6903f29da067f5cbcbfcc7c01b10 (diff) | |
download | glibc-bbebe83a2874cd25934046d908824dfc11711a2b.zip glibc-bbebe83a2874cd25934046d908824dfc11711a2b.tar.gz glibc-bbebe83a2874cd25934046d908824dfc11711a2b.tar.bz2 |
locale: Remove cleanup function pointer from struct __localedata
We can call the cleanup functions directly from _nl_unload_locale
if we pass the category to it.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'locale/localeinfo.h')
-rw-r--r-- | locale/localeinfo.h | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/locale/localeinfo.h b/locale/localeinfo.h index 87d3b48..8ce072b 100644 --- a/locale/localeinfo.h +++ b/locale/localeinfo.h @@ -58,18 +58,13 @@ struct __locale_data ld_archive /* Both point into mmap'd archive regions. */ } alloc; - /* This provides a slot for category-specific code to cache data computed - about this locale. That code can set a cleanup function to deallocate - the data. */ - struct + /* This provides a slot for category-specific code to cache data + computed about this locale. This is deallocated at the start of + _nl_unload_locale. */ + union { - void (*cleanup) (struct __locale_data *); - union - { - void *data; - struct lc_time_data *time; - const struct gconv_fcts *ctype; - }; + struct lc_time_data *time; + const struct gconv_fcts *ctype; } private; unsigned int usage_count; /* Counter for users. */ @@ -349,7 +344,8 @@ extern void _nl_load_locale (struct loaded_l10nfile *file, int category) attribute_hidden; /* Free all resource. */ -extern void _nl_unload_locale (struct __locale_data *locale) attribute_hidden; +extern void _nl_unload_locale (int category, struct __locale_data *locale) + attribute_hidden; /* Free the locale and give back all memory if the usage count is one. */ extern void _nl_remove_locale (int locale, struct __locale_data *data) @@ -409,7 +405,8 @@ extern int _nl_parse_alt_digit (const char **strp, /* Postload processing. */ extern void _nl_postload_ctype (void); -/* Functions used for the `private.cleanup' hook. */ +/* Deallocate category-specific data. Used in _nl_unload_locale. */ +extern void _nl_cleanup_ctype (struct __locale_data *) attribute_hidden; extern void _nl_cleanup_time (struct __locale_data *) attribute_hidden; |