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

Back to archive index

YamaKen yamak****@bp*****
2005年 1月 7日 (金) 09:11:01 JST


At Fri, 7 Jan 2005 07:36:56 +0900,
tkng****@xem***** wrote:
> 
> On Wed, 05 Jan 2005 18:18:00 +0900
> YamaKen <yamak****@bp*****> wrote:
> > 結局uim_init()を呼び出した回数を参照カウント(initカウント?)とし
> > てグローバルに保持して、カウントが0になった時点でuim_quit()を呼
> > ぶという実装にして問題を回避しました。
> > 
> > libuim内でこれと同様の実装を行って対応しませんか? ブリッジ側の負
> > 担も減りますし。
> 
>  デザイン的にその方がきれいかなと思って実装してみたのですが、それではダ
> メでした。それぞれの関数が呼ばれる回数とタイミングを調べ直すと、
> uim_initが2回呼ばれて、uim_quitが2回呼ばれて(この2回目で終了処理が行わ
> れる)、それからuim_custom_quitが呼ばれています。実装する前に気づけよと
> いう感じです。

uim_custom_quit()の後にもう1回uim_quit()が呼ばれますよね? 本来は
その時点でカウントが0になるべきなのでuim_init()かuim_quit()が過
剰に呼ばれてるバグがあるんじゃないでしょうか。もっとも以前の仕様
ではuim_init()を過剰に呼んでもバグとは言えませんが。

>  というわけで、このデザインだとうまくいきません。そこで、次のような解決
> 策を提案します。
> 
>  - uim_custom_init/quitはuim_init/quitのなかに埋め込む。
>  - フル機能を必要とする場合にはuim_custom_enableとか、そんな感じの
>   関数を明示的に呼ばせる。
> 
>  これでリソースの問題も解決できると思うのですがどうでしょう?

uim-prefのようにimmoduleも読み込まれる環境ではuim_init()が呼ばれ
る前にuim_custom_enable()を呼ぶのは難しいと思います。また、
uim-customのコードはlibuimのコアから簡単に外せるように独立性を保っ
ておきたいので、できれば今のインタフェイスを維持したいです。そん
な面倒なと思うでしょうが、libuimはまだまだスリム化したいと思って
います。その一環と考えてください。

> > また、必要リソース節減のため、uim_custom_{init,quit}()の呼び出し
> > はlibuim内に埋め込むのではなくuim-prefのようにcustom APIのフル機
> > 能を必要とするアプリケーションが明示的に行う事を意図しています。
> > 
> > 今はuim_init()内でフル機能版のcustom.scmを読み込んでいますが、
> > 0.4.6までにはIMの実行に最低限必要な軽量機能版に挿し替える予定で
> > す。

-------------------------------
ヤマケン yamak****@bp*****



Anthy-dev メーリングリストの案内
Back to archive index