changeset 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 d71fa3ae930f
children 2460008d50d1
files src/lib-dict/dict-register.c
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
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);