メニエスの名のもとに

プログラミング関係を中心としたぐだぐだブログ

Application Not Responding 対策

処理が遅くてANRが発生しているのだと思っていたが、実際にはバグだった。

自分のバグじゃないと思ったときは、たいてい自分のバグなんだよね。解いている途中のデータを保存するときに、不正な保存形式になっていて、次回起動時にその不正なデータを読み込もうとすると、あろうことか無限ループに陥ってしまうという怖ろしいバグであった。
その原因は、空のマスに数字を確定として入力したときに、この数字は大きい文字で表示というフラグを立てるのだが、undo するとそのフラグだけ残るというものであった。数字がないのに大きく表示するというフラグのあるデータは、フラグを無視して読み込むように修正し、動作を確認したのちに、フラグだけ残るバグを取って不正なデータが出来ないように修正。
処理が重いのだと思ってかなり改変してしまったので、メモリ消費量とか減っているといいな。