}
}
+static void unregister_hooks()
+{
+ if (render_hook_id != -1) {
+ hooks_unregister_hook(AVATAR_IMAGE_RENDER_HOOKLIST,
+ render_hook_id);
+ render_hook_id = -1;
+ }
+ if (update_hook_id != -1) {
+ hooks_unregister_hook(AVATAR_HEADER_UPDATE_HOOKLIST,
+ update_hook_id);
+ update_hook_id = -1;
+ }
+}
+
/**
* Initialize plugin.
*
libravatar_image_render_hook,
NULL);
if (render_hook_id == -1) {
+ unregister_hooks();
*error = g_strdup(_("Failed to register avatar image render hook"));
return -1;
}
/* cache dir */
if (cache_dir_init() == -1) {
+ unregister_hooks();
*error = g_strdup(_("Failed to create avatar image cache directory"));
return -1;
}
curl_global_init(CURL_GLOBAL_DEFAULT);
/* missing cache */
if (missing_cache_init() == -1) {
+ unregister_hooks();
*error = g_strdup(_("Failed to load missing items cache"));
return -1;
}
*/
gboolean plugin_done(void)
{
- if (render_hook_id != -1) {
- hooks_unregister_hook(AVATAR_IMAGE_RENDER_HOOKLIST,
- render_hook_id);
- render_hook_id = -1;
- }
- if (update_hook_id != -1) {
- hooks_unregister_hook(AVATAR_HEADER_UPDATE_HOOKLIST,
- update_hook_id);
- update_hook_id = -1;
- }
+ unregister_hooks();
libravatar_prefs_done();
missing_cache_done();
if (cache_dir != NULL)