diff options
author | Peng Wu <alexepico@gmail.com> | 2018-06-08 16:16:05 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2018-06-08 16:16:05 +0800 |
commit | 7b485605d696bb96a6024d22a259336dcd16fb72 (patch) | |
tree | bb7c7d3684c534024de7041ba8f4cdc3a9840865 /lua/lua-plugin.c | |
parent | 41b283aeed897d5ea23ce2a60b9470472b2d492c (diff) | |
download | ibus-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.c | 24 |
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; } |