2019年12月09日

ちょっと気持ち悪く思っていた処理の見直し。「マウスのお供」の設定読書き処理

先月上旬マウスのお供で、時報のところの「複数音指定」チェックボックスを新設しました。
これをチェックすると、通常のサウンドファイル指定の編集ボックスが非活性になり、「参照」ボタンが「選択」ボタンに切り替わり、その「選択」ボタンを押すと、各時刻ごとに時報の音を別々に指定できるダイアログが出現します。

201911_tk_multisignalsel.png

で、この設定の読み出し/書き込みの処理のところが、ずっと気持ち悪かったのです。
0時〜23時の設定読み書き処理を、ループを使わずにフラットに書いていたのです。

というわけで、その部分を修正したバージョン 1.61.12βを、昨日付で公開しました。

リソースリークのバグの件もあるので、今週中になるはやで正式版公開にしたいと思っていますが、ちょっと気にしているのが、このままでいくと、バージョン番号に「13」という数字が入ってきてしまって、ちょっと縁起が悪そうなのでどうしようかな、と。13を飛ばして14にすることも含めて考え中です。

posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | プログラミング

2019年12月08日

「マウスのお供」リソースリーク調査結果

「マウスのお供」でリソースリークが発生している可能性が濃厚になっていた件ですが、その後、ユーザーからの情報提供で一気に状況が進み、無事に原因判明&修正版のβ版公開まで進めることができました。

情報提供にご協力頂いた方に感謝いたします。

詳細は昨日の記事の追記部分を参照でお願いします。
201912_mtmo_bug.png

上記のスクリーンショットのように「項目間に区切り線を引く」をONにしたとき、時計やメモなどの間に区切り線を引くようになりますが、この区切り線を引くためのペンハンドル(HPEN)が解放漏れしており、リソースリークになっていました。最悪、OSの再起動が必要になります。

項目間に区切り線を引く」をONにしないと、ペンハンドルは作られないため、問題が表面化しません。
そのあたりが、原因調査が難航した要因でした。

β版は更新しましたが、正式版にバグが残った状態が持続するのも気持ち悪いので、報告者の方の問題解決を確認した後、今週中(12/9週)には正式版の方も更新したいと考えています。

posted by ayacy at 00:57 | Comment(0) | TrackBack(0) | プログラミング

2019年12月07日

「マウスのお供」でリソースリークっぽいことが起きているらしいのだが兆候がつかめず…

「マウスのお供」を、他のいくつかのソフトと共に10時間くらい立ち上げっぱなしにしていたら、画面が乱れ始め、「マウスのお供」を再起動するといったん乱れは収まるが、その後すぐに乱れ始める、という情報が届きました。

情報から察するにリソースリークとかハンドルリークとかメモリリークだろうか…という気がしたので、「マウスのお供」「マウスふるふる」(マウスを動かし続けるため)、「TeraPad」(報告にあった同時利用ソフト)を動かし、Process Explorerで10時間程度監視しました。

201912_mtmo_rkkana.png

試行の最初の方で、GDI Handlesの情報が見られたので、このまま定期的に上がり続けるのかな?と思ったが、結局このまま変わらず。リソースリークの兆候はつかめず。

報告者の環境では、いったい何が起きているのか、根気強く調べていく必要がありそう。
もしかしたら、報告者のところで有効にしている設定が影響しているのかもしれない。

とりあえず報告者の環境と同一設定にすべく、設定ダイアログのスクリーンショットの提供をお願いしています。

20:41追記】
バグ特定に、ユーザーに根気よくお付き合いいただけていて、原因が特定できそうです。
ユーザーから設定ダイアログのスクリーンショットの提供を受け、同じ設定にして「マウスのお供」を再スタートしました。
すると、GDI Handles の数がグイグイ上がっていく事象を確認。

201912_mtmo_bug.png

1つ1つ、設定のON/OFFをして調べてみると「項目間に区切り線を引く」をONにした場合だけこの現象が発生することが判明。
おそらく、項目間の区切り線のためのHPEN(ペンハンドル)がリークしている可能性が濃厚。

【追記ここまで】


続きを読む
posted by ayacy at 10:28 | Comment(0) | TrackBack(0) | プログラミング