namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: proposal: nmz/mode
細かい話です。
Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx> wrote:
>それから、 magic.h, critical.h を廃止して libnamazu.h にまと
>めました。ついでに、error handling の処理を大ざっぱに書き換
>えました (DIE_HLIST, DIE_ERROR の類を廃止)。目を通してもらえ
>ると助かります。 > 野首さん
構造体 HLIST, HLIST_DATA に stat というメンバーを作ってそこ
に、エラーの状態を記録するようにしました。(たくさんヒットし
すぎたとか、インデックスを開くのに失敗したとか、エラーの状態
はたくさんある)
# 今、気づいたのだけど、これらの状態は PHRASERES に格納すべ
# きでした。 (output.c の print_word_hit_count() で使うので)
で、最悪のエラー (メモリの確保に失敗したとか) のときは stat
に ERR_FATAL を書き込んでそれを確認するようにしました。
が、よく考えてみれば、 HLIST, HLIST_DATA を操作する関数の戻
り値をすべてポインタにすれば、最悪のエラーのときは null
pointer を返せるので、それで判別できます。(自然なやり方)
というわけで、HLIST, HLIST_DATA を操作する関数の戻り値と引数
をすべてポインタで受け渡しするように修正したいと思います。メ
モリのコピーが減るので、わずかに効率が上がる、という効果もあ
ります。
いかがでしょう? (特に野首さん)
...
エラー処理についてじっくり考え直すことにします (難しいなあ…)。
そもそも、データ構造から考え直した方がいいのかも (きっとそう
だ)。
# 書き直すべき汚いコードがまだ山ほどあります。とりあえずは動
# いているけど、長期的な保守・改造を考えれば、やはりきれいに
# 書き直すべきでしょう。(scratch から書き直したい、という気
# 持ちはあるけど、今はその時期ではないと思う)
p.s.
最初の設計が悪いと、あとから修正するのが大変である、という事
実を身にしみています。 ;-)
-- Satoru Takabayashi
プログラミングをもっと勉強せねば