svnno****@sourc*****
svnno****@sourc*****
Thu Mar 22 20:45:39 JST 2007
Revision: 2962 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=kazehakase&view=rev&rev=2962 Author: kous Date: 2007-03-22 20:45:39 +0900 (Thu, 22 Mar 2007) Log Message: ----------- * src/kz-module.[ch]: moved to workaround for kz-gecko-embed.cpp to ... * src/kz-embed.c: ... here. Modified Paths: -------------- kazehakase/trunk/ChangeLog kazehakase/trunk/src/kz-embed.c kazehakase/trunk/src/kz-module.c kazehakase/trunk/src/kz-module.h Modified: kazehakase/trunk/ChangeLog =================================================================== --- kazehakase/trunk/ChangeLog 2007-03-22 09:17:50 UTC (rev 2961) +++ kazehakase/trunk/ChangeLog 2007-03-22 11:45:39 UTC (rev 2962) @@ -1,5 +1,9 @@ 2007-03-22 Kouhei Sutou <kou****@cozmi*****> + * src/kz-module.[ch]: moved to workaround for kz-gecko-embed.cpp + to ... + * src/kz-embed.c: ... here. + * src/Makefile.am, src/kz-ext-impl.h: removed kz-ext-impl.h. * src/kz-ext.[ch], ext/ruby/kz-rb-ext.c, ext/ruby/Makefile.am: Modified: kazehakase/trunk/src/kz-embed.c =================================================================== --- kazehakase/trunk/src/kz-embed.c 2007-03-22 09:17:50 UTC (rev 2961) +++ kazehakase/trunk/src/kz-embed.c 2007-03-22 11:45:39 UTC (rev 2962) @@ -55,18 +55,20 @@ void kz_embed_exit (void) { +#warning FIXME: workaround for kz-gecko-embed.cpp. + g_list_foreach(embeds, (GFunc)g_type_module_unuse, NULL); g_list_foreach(embeds, (GFunc)kz_module_exit, NULL); } static GtkWidget * -_kz_embed_new (const gchar *name, const gchar *first_property, ...) +_kz_embed_new (KzModule *module, const gchar *name, + const gchar *first_property, ...) { GObject *embed; va_list var_args; va_start(var_args, first_property); - embed = kz_module_find_and_instantiate(embeds, name, - first_property, var_args); + embed = kz_module_instantiate(module, first_property, var_args); va_end(var_args); return GTK_WIDGET(embed); @@ -75,10 +77,20 @@ GtkWidget * kz_embed_new (const gchar *name) { - if (!kz_module_load_module(&embeds, _kz_embed_module_dir(), name)) - return NULL; + KzModule *module; - return _kz_embed_new(name, NULL); + module = kz_module_find(embeds, name); + if (!module) + { + module = kz_module_load_module(_kz_embed_module_dir(), name); + if (!module) + return NULL; +#warning FIXME: workaround for kz-gecko-embed.cpp. + g_type_module_use(G_TYPE_MODULE(module)); + embeds = g_list_prepend(embeds, module); + } + + return _kz_embed_new(module, name, NULL); } Modified: kazehakase/trunk/src/kz-module.c =================================================================== --- kazehakase/trunk/src/kz-module.c 2007-03-22 09:17:50 UTC (rev 2961) +++ kazehakase/trunk/src/kz-module.c 2007-03-22 11:45:39 UTC (rev 2962) @@ -171,8 +171,8 @@ g_free(message); } -static KzModule * -_kz_module_find (GList *modules, const gchar *name) +KzModule * +kz_module_find (GList *modules, const gchar *name) { GList *node; @@ -189,20 +189,6 @@ } GObject * -kz_module_find_and_instantiate (GList *modules, const gchar *name, - const gchar *first_property, va_list var_args) -{ - GObject *object = NULL; - KzModule *module; - - module = _kz_module_find(modules, name); - if (module) - object = kz_module_instantiate(module, first_property, var_args); - - return object; -} - -GObject * kz_module_instantiate (KzModule *module, const gchar *first_property, va_list var_args) { @@ -260,8 +246,8 @@ } } -static KzModule * -_kz_module_load (const gchar *base_dir, const gchar *name) +KzModule * +kz_module_load_module (const gchar *base_dir, const gchar *name) { gchar *mod_base_name, *mod_path; KzModule *module = NULL; @@ -286,25 +272,6 @@ return module; } -gboolean -kz_module_load_module (GList **modules, const gchar *base_dir, const gchar *name) -{ - KzModule *module; - - if (_kz_module_find(*modules, name)) - return TRUE; - - module = _kz_module_load(base_dir, name); - if (module) - { -#warning FIXME: remove this - g_type_module_use(G_TYPE_MODULE(module)); - *modules = g_list_prepend(*modules, module); - } - - return module != NULL; -} - GList * kz_module_load_modules (const gchar *base_dir) { @@ -317,7 +284,7 @@ while ((entry = g_dir_read_name(dir))) { KzModule *module; - module = _kz_module_load(base_dir, entry); + module = kz_module_load_module(base_dir, entry); if (module) modules = g_list_prepend(modules, module); } @@ -362,7 +329,6 @@ g_type_module_unuse(G_TYPE_MODULE(module)); } -#warning FIXME: remove this g_type_module_unuse(G_TYPE_MODULE(module)); } Modified: kazehakase/trunk/src/kz-module.h =================================================================== --- kazehakase/trunk/src/kz-module.h 2007-03-22 09:17:50 UTC (rev 2961) +++ kazehakase/trunk/src/kz-module.h 2007-03-22 11:45:39 UTC (rev 2962) @@ -48,17 +48,13 @@ GType kz_module_get_type (void) G_GNUC_CONST; -gboolean kz_module_load_module (GList **modules, - const gchar *base_dir, +KzModule *kz_module_load_module (const gchar *base_dir, const gchar *name); GList *kz_module_load_modules (const gchar *base_dir); -GObject *kz_module_find_and_instantiate(GList *modules, - const gchar *name, - const gchar *first_property, - va_list var_args); +KzModule *kz_module_find (GList *modules, + const gchar *name); - GObject *kz_module_instantiate (KzModule *module, const gchar *first_property, va_list var_args);