YamaKen
yamak****@bp*****
2005年 1月 5日 (水) 18:18:00 JST
ヤマケンです。だんだんuim-prefがいい感じになってきましたね。 At Wed, 5 Jan 2005 16:07:18 +0900, tkng****@xem***** wrote: > > On Tue, 4 Jan 2005 15:09:45 +0900 > Kazuki Ohta <mover****@hct*****> wrote: > > > YamaKenさんのパッチとは別の方法で解決してみました(r118)。というより > > このパッチを当ててしまうとwidgetが右側にどんどん延びて行ってしまい > > ますね:-)ただ、うちの環境だとまだ終了時にsegvってます。有効なbtを取 > > れないのですが... #パッチちゃう… > たぶん原因がわかりました。GTK+のim_module_exitでuim_quitを呼んでいて、 > しかもそれがuim_custom_quitよりも先に実行されているのが原因です。 > uim_quit内でuim_custom_quitを呼ぶように変更しても問題ないですか?(試し > にそのように変更してみると、segvは起こらなくなりました。) ああ、そういう事でしたか。その問題には別の方法で対応した方がいい と思います。 IMKit-uimでも同様の問題が発生した事があるんですが、uimの提供する IMをQtopiaのIMプラグインに一対一で対応させている関係で、1つのプ ラグインがuim_quit()を呼んで終了した後にもまだ同一プロセス内の他 のプラグインがuimの機能を呼び出す必要のある場合があり問題になり ました。 結局uim_init()を呼び出した回数を参照カウント(initカウント?)とし てグローバルに保持して、カウントが0になった時点でuim_quit()を呼 ぶという実装にして問題を回避しました。 libuim内でこれと同様の実装を行って対応しませんか? ブリッジ側の負 担も減りますし。 また、必要リソース節減のため、uim_custom_{init,quit}()の呼び出し はlibuim内に埋め込むのではなくuim-prefのようにcustom APIのフル機 能を必要とするアプリケーションが明示的に行う事を意図しています。 今はuim_init()内でフル機能版のcustom.scmを読み込んでいますが、 0.4.6までにはIMの実行に最低限必要な軽量機能版に挿し替える予定で す。 ------------------------------- ヤマケン yamak****@bp*****