summaryrefslogtreecommitdiffstats
path: root/lua/lua-plugin.c
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2018-06-08 16:16:05 +0800
committerPeng Wu <alexepico@gmail.com>2018-06-08 16:16:05 +0800
commit7b485605d696bb96a6024d22a259336dcd16fb72 (patch)
treebb7c7d3684c534024de7041ba8f4cdc3a9840865 /lua/lua-plugin.c
parent41b283aeed897d5ea23ce2a60b9470472b2d492c (diff)
downloadibus-libpinyin-7b485605d696bb96a6024d22a259336dcd16fb72.tar.gz
ibus-libpinyin-7b485605d696bb96a6024d22a259336dcd16fb72.tar.xz
ibus-libpinyin-7b485605d696bb96a6024d22a259336dcd16fb72.zip
update lua-plugin-init.c
Diffstat (limited to 'lua/lua-plugin.c')
-rw-r--r--lua/lua-plugin.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/lua/lua-plugin.c b/lua/lua-plugin.c
index 6f48be0..2300930 100644
--- a/lua/lua-plugin.c
+++ b/lua/lua-plugin.c
@@ -114,6 +114,8 @@ static int
lua_plugin_fini(IBusEnginePluginPrivate * plugin){
size_t i;
lua_command_t * command;
+ lua_trigger_t * trigger;
+ lua_converter_t * converter;
if ( plugin->lua_commands ){
for ( i = 0; i < plugin->lua_commands->len; ++i){
@@ -124,8 +126,30 @@ lua_plugin_fini(IBusEnginePluginPrivate * plugin){
plugin->lua_commands = NULL;
}
+ if ( plugin->lua_triggers ){
+ for ( i = 0; i < plugin->lua_triggers->len; ++i){
+ trigger = &g_array_index(plugin->lua_triggers, lua_trigger_t, i);
+ lua_trigger_reclaim(trigger);
+ }
+ g_array_free(plugin->lua_triggers, TRUE);
+ plugin->lua_triggers = NULL;
+ }
+
+ if ( plugin->lua_converters ){
+ for ( i = 0; i < plugin->lua_converters->len; ++i){
+ converter = &g_array_index(plugin->lua_converters, lua_converter_t, i);
+ lua_converter_reclaim(converter);
+ }
+ g_array_free(plugin->lua_converters, TRUE);
+ plugin->lua_converters = NULL;
+ }
+
lua_close(plugin->L);
plugin->L = NULL;
+
+ g_free(plugin->use_converter);
+ plugin->use_converter = NULL;
+
return 0;
}