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

Back to archive index

TOKUNAGA Hiroyuki tkng****@xem*****
2005年 1月 8日 (土) 01:27:01 JST


On Fri, 07 Jan 2005 09:11:01 +0900
YamaKen <yamak****@bp*****> wrote:

> 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_quitを2度呼ぶバグがありました。これを修正するとこの方法でも動きま
した。ただ、それとは別に、私はuim_init/quitとuim_custom_init/quitをわけ
るのはデザインとして好きではないので、 [Anthy-dev 1563] 式のAPIを引き続
き提案します。


> >  というわけで、このデザインだとうまくいきません。そこで、次のような
> > 解決策を提案します。
> > 
> >  - uim_custom_init/quitはuim_init/quitのなかに埋め込む。
> >  - フル機能を必要とする場合にはuim_custom_enableとか、そんな感じの
> >   関数を明示的に呼ばせる。
> > 
> >  これでリソースの問題も解決できると思うのですがどうでしょう?
> 
> uim-prefのようにimmoduleも読み込まれる環境ではuim_init()が呼ばれ
> る前にuim_custom_enable()を呼ぶのは難しいと思います。また、
> uim-customのコードはlibuimのコアから簡単に外せるように独立性を保っ
> ておきたいので、できれば今のインタフェイスを維持したいです。そん
> な面倒なと思うでしょうが、libuimはまだまだスリム化したいと思って
> います。その一環と考えてください。

 いえ、uim_custom_enableが呼ばれるのはuim_initの後です。つまり、今
uim_custom_init内でやっている処理をuim_custom_enableで行うと。


-- 
徳永拓之
tkng****@xem*****
http://kodou.net/



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