diff src/lib-dict/dict-register.c @ 18649:ac259cd62fbc

lib-dict: Allow registering builtin dict drivers multiple times.
author Timo Sirainen <tss@iki.fi>
date Tue, 12 May 2015 19:12:11 +0300
parents 3009a1a6f6d5
children 0f22db71df7a
line wrap: on
line diff
--- a/src/lib-dict/dict-register.c	Tue May 12 18:16:54 2015 +0300
+++ b/src/lib-dict/dict-register.c	Tue May 12 19:12:11 2015 +0300
@@ -3,8 +3,12 @@
 #include "lib.h"
 #include "dict-private.h"
 
+static int refcount = 0;
+
 void dict_drivers_register_builtin(void)
 {
+	if (refcount++ > 0)
+		return;
 	dict_driver_register(&dict_driver_client);
 	dict_driver_register(&dict_driver_file);
 	dict_driver_register(&dict_driver_fs);
@@ -15,6 +19,8 @@
 
 void dict_drivers_unregister_builtin(void)
 {
+	if (--refcount > 0)
+		return;
 	dict_driver_unregister(&dict_driver_client);
 	dict_driver_unregister(&dict_driver_file);
 	dict_driver_unregister(&dict_driver_fs);