Takuro Ashie
ashie****@homa*****
2003年 10月 27日 (月) 00:08:51 JST
At Sun, 26 Oct 2003 22:46:16 +0900, Hiroyuki Ikezoe wrote: > あれ、まだありましたか。 修正してコミット済ですが,一応報告しておきます. * kz-remote-bookmark.c で,KzHTTPが解放されていないようでした. シグナルハンドラ内で解放するとまずそうなので,fetch-completed終了 後にメインループで解放するように修正しました. * prefs_lang_response() で kz_dlist_get_enabled_id()の返り値を解放 していませんでした. * kz-tablabel.c で cb_copy() の "URIとタイトルをコピー" の処理をし た後に文字列を解放していないのを修正しました. GTK+-2.0では,関数が文字列を返し,呼出側がそれを解放しなければなら ない場合,返り値はconst付きで定義されています.風博士でもこのルー ルに従って関数を定義しているつもりですので,機械的に「constが付い てない場合は自分で解放する」を徹底した方が良いと思います.また, これを徹底するために,返り値を格納する変数も,constを付ける/付け ないで見分けるようにしておくと,バグを未然に防げる可能性が高まり ます. (コメントを付けて見分けようとする人もいますが,constを付けておい た方がコンパイラが警告を出してくれるので,より安全です.) ついでに言うと,関数の引数でポインタを渡す場合(特に文字列),関数の 中身でポインタの指し示す先(char*なら文字列そのもの)を変更しない場 合は,明示的にconstを付けて定義しておいた方が,バグを未然に防げる 可能性が高まります. * kz_bookmark_menu_items_new() と kz_bookmark_menu_dispose() での sub_menuの解放を修正. えーと,これは私も昔ひっかかった事があって,その時に色々と調べたの ですが,詳しい事は忘れてしまって(^^;ちょっと今すぐには説明できませ ん. > っていうかmozilla漏れすぎですね、あれ。 メモリリーク以外にも,色々と問題がありそうです. Mozillaはもう(以下自粛)