リーク探しもうヘロヘロquneリーク探しもうヘロヘロ2009/02/27他人が書いた初見のコードがリークしているということで,今日探していたんですけれど,見つからない......。出るので,対応しなくちゃいけません。ほとんど泣きが入ってます。あたしのひそかな特技に「リーク探しがうまい」という自己満足があるんですけれど,今回は本当にヘロヘロです。細かいオブジェクトの領域が大量にコマコマと確保されていて,そのオブジェクトがあちこちの異なるクラスで管理されている。メモリ管理で次のことをやられるとツライ。RAIIに則っていない。確保した領域を指すポインタ(のコンテナ)をメンバに持つクラスがあちこちにある。コンテナに入っている要素の数をコンテナの外部で管理している(有効な要素とそうでない要素のような色分けがあるらしい)。今回のリーク,3番目の確保している領域数の数え方が原因になっているところまでは判明しました。されているけれど,それが管理外になっているみたい。これがまた別のクラスで管理されちゃったりするもんで,結局どこのクラスが責任持ってこのリソースを解放するのか謎。コンテナに詰め込んだりしています。されるタイミングも(同じコンテナで管理しているにもかかわらず)まちまちだったりする。書きましょう,といった話があるわけだけれど,それに照らすと,もはやリークしてくれと言わんばかりのコードに見える......。実装話でも書こうかと思ったんですけど,ちと体力的に限界。明日もリーク探しか......気が重いです。