Revision: 6464
Author: iratqq
Date: Sun Jun 20 19:50:59 2010
Log: * uim/uim-eb.c (uim_eb_init, uim_eb_finalize):
- New functions.
* uim/uim-eb.h:
- Add prototypes.
* uim/uim-eb.c (uim_eb_new):
* uim/uim-eb.c (uim_eb_destroy):
- Remove init/finalize().
* uim/eb.c (uim_plugin_instance_init):
* uim/eb.c (uim_plugin_instance_quit):
- Add init/finalize().
eb_initialize_library/eb_finalize_library() are called only once.
http://code.google.com/p/uim/source/detail?r=6464
Modified:
/trunk/uim/eb.c
/trunk/uim/uim-eb.c
/trunk/uim/uim-eb.h
=======================================
--- /trunk/uim/eb.c Mon Apr 12 20:56:27 2010
+++ /trunk/uim/eb.c Sun Jun 20 19:50:59 2010
@@ -74,6 +74,8 @@
void
uim_plugin_instance_init(void)
{
+ uim_eb_open();
+
uim_scm_init_proc1("eb-new", c_uim_eb_new);
uim_scm_init_proc2("eb-search-text", c_uim_eb_search_text);
uim_scm_init_proc1("eb-destroy", c_uim_eb_destroy);
@@ -82,5 +84,6 @@
void
uim_plugin_instance_quit(void)
{
+ uim_eb_close();
}
=======================================
--- /trunk/uim/uim-eb.c Sun Apr 4 20:35:54 2010
+++ /trunk/uim/uim-eb.c Sun Jun 20 19:50:59 2010
@@ -69,8 +69,6 @@
EB_Position position,
char **str);
-static unsigned int eb_ref_count = 0;
-
static int
uim_eb_strappend(char **dest, const char *append, size_t append_len)
{
@@ -94,19 +92,30 @@
return 1;
}
-uim_eb *
-uim_eb_new (const char *bookpath)
-{
- uim_eb *ueb;
+void
+uim_eb_open ()
+{
EB_Error_Code err;
- ueb = uim_malloc(sizeof(uim_eb));
- eb_ref_count++;
-
err = eb_initialize_library();
if (err != EB_SUCCESS)
uim_notify_fatal(_("eb: failed to initialize EB library : error
= %s\n"),
eb_error_message(err));
+}
+
+void
+uim_eb_close (void)
+{
+ uim_eb_finalize();
+}
+
+uim_eb *
+uim_eb_new (const char *bookpath)
+{
+ uim_eb *ueb;
+ EB_Error_Code err;
+
+ ueb = uim_malloc(sizeof(uim_eb));
eb_initialize_book(&ueb->book);
@@ -126,20 +135,12 @@
return ueb;
}
-
void
uim_eb_destroy (uim_eb *ueb)
{
- if (!ueb)
- return;
-
- eb_finalize_book(&ueb->book);
-
- eb_ref_count--;
- if (eb_ref_count == 0)
- eb_finalize_library();
free(ueb);
+ ueb = NULL;
}
=======================================
--- /trunk/uim/uim-eb.h Sun Apr 4 20:35:54 2010
+++ /trunk/uim/uim-eb.h Sun Jun 20 19:50:59 2010
@@ -39,6 +39,8 @@
typedef struct _uim_eb uim_eb;
+void uim_eb_open (void);
+void uim_eb_close (void);
uim_eb *uim_eb_new (const char *bookpath);
char *uim_eb_search_text (uim_eb *ueb,
const char *text);