あまつぶ

8.24 【思わぬバグ】

 昨日IconPartyの新しいバージョンを1ヶ月ちょっとぶりにリリースしたのだが、その直後にバグを発見(苦笑)。1ドットだけ描画して取り消した時に画面が再描画されないというもの。2ドット以上描画すれば正常に動作するのだからなんとも不思議な感じだ。なんとか修正したが、なにが起こったのかと思ってしまった。動作テストでは1ドットだけの描画はしていなくて、ちょっとアイコンでも作ろうかなと思って使ってみたら「あれ?」と。
 あとは、IconPartyを使ったあとになんだか不安定になるという問題があるようだ。単にファイルを開いて閉じただけでも、その後にFinderでファイルをコピーしたらデバッガに……なんてこともあった。本当にIconPartyが原因なのかどうかはちょっと定かではないが、これまでそういうことが起きた経験はない。ペイントウィンドウを閉じる時に一部のメモリを解放し忘れていたバグは見つけたが、これで解決するのかどうかも謎だ。

 メモリリークを探していた時に、別の問題も発見。Navigation Servicesを使ってファイルを開いた時にもメモリリークがあるのだ。内容を見ると「aevt」とかいう文字があり、おそらくアップルイベント関係だろう。調べてみると、自分自身にイベントを送る際にリプライなどを破棄し忘れていた。うむむ。
 もうひとつ、初期設定ダイアログにもメモリリークがあるようだったが、ソースに問題は見つからず、おそらくCDEFが原因だろうと判断。CDEFのソースにも問題らしきところは見つからなかったが、はて……??

 アイコンリストウィンドウ関係ではメモリリークは見つからなかった。が、「アイコン取り込み...」でアイコンを取り込んでみると、すでにあるIDとだぶってしまい、アイコンをダブルクリックしたところでデバッガへ。ここでもなにか問題があるらしい。これは結局、ウィンドウ用のデータをハンドルで管理していたのにポインタとして参照しようとしていたのが原因だった。ハンドルは面倒なのでQT-QやPhutではポインタで管理するようにしていて、それと勘違いしたのかな……。
 アイコンをドロップした場合はどうだろうとやってみると、なんとこちらはフリーズ。似たようなことが原因なのかと思ったら全く違った。「連続IDを付加」のオプションをチェックしていると、1つだけアイコンを取り込んだ時に永久ループに入ってしまっていた。これについては、1つの場合は特別扱いすることにより回避。「連続ID」のテストでは複数のアイコンを同時にドロップするチェックしかチェックしていなかったのが敗因か(1ドットだけ……と似てるなぁ)。

 そんなわけで上記バグを修正した0.95b2をリリース。今のところ「なんだか不安定になる」症状は発生していないのでやはりメモリ解放が原因だったのかなと思いつつ、なにか見つけた方は至急連絡よろしく。

 それはそうと、Geneva2Osaka 1.30の作成も一応順調。どうにか英語版OSでもシステムフォントが変更できるようになってくれた。あとはキャレット位置ずれの問題だが、もう少しか。

to August 21, 1999 ↑ to August index → to August 26, 1999