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を付けて定義しておいた方が,バグを未然に防げる > 可能性が高まります. なるほど。知りませんでした。勉強になるな〜。