[Anthy-dev 1549] Re: uim-pref開発計画

アーカイブの一覧に戻る

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*****



Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る