[Kazehakase-devel] valgrindでのチェック

Zurück zum Archiv-Index

Hiroyuki Ikezoe poinc****@ikezo*****
2003年 10月 27日 (月) 07:42:22 JST


On Mon, 27 Oct 2003 00:08:51 +0900
Takuro Ashie <ashie****@homa*****> wrote:

> 修正してコミット済ですが,一応報告しておきます.
> 
>   * kz-remote-bookmark.c で,KzHTTPが解放されていないようでした.
>     シグナルハンドラ内で解放するとまずそうなので,fetch-completed終了
>     後にメインループで解放するように修正しました.

ああ、やっぱり…。通信まわりでは絶対あると思ってたんですが、valgrindでチェ
ックしたときになかったんで、あれ?おかしいなと思いつつ。
やっぱり自分を信用しちゃいかん(笑。

>   * kz-tablabel.c で cb_copy() の "URIとタイトルをコピー" の処理をし
>     た後に文字列を解放していないのを修正しました.
> 
>     GTK+-2.0では,関数が文字列を返し,呼出側がそれを解放しなければなら
>     ない場合,返り値はconst付きで定義されています.風博士でもこのルー
>     ルに従って関数を定義しているつもりですので,機械的に「constが付い
>     てない場合は自分で解放する」を徹底した方が良いと思います.また,
>     これを徹底するために,返り値を格納する変数も,constを付ける/付け
>     ないで見分けるようにしておくと,バグを未然に防げる可能性が高まり
>     ます.
>     (コメントを付けて見分けようとする人もいますが,constを付けておい
>     た方がコンパイラが警告を出してくれるので,より安全です.)
> 
>     ついでに言うと,関数の引数でポインタを渡す場合(特に文字列),関数の
>     中身でポインタの指し示す先(char*なら文字列そのもの)を変更しない場
>     合は,明示的にconstを付けて定義しておいた方が,バグを未然に防げる
>     可能性が高まります.

なるほど。知りませんでした。勉強になるな〜。




Kazehakase-devel メーリングリストの案内
Zurück zum Archiv-Index