メモリリーク殲滅

==9315== All heap blocks were freed -- no leaks are possible.


Varlgrindで検出された

  • メモリリーク(free/delete忘れ)
  • invalid delete (複数 delete)→C++の仕様的にはあり
  • invalid read/write (解放後のアクセス)

をすべて直した。疲れた・・・。


今回のメモリリークの原因は、単純なミスは少なかった。
VnodeとコンクリートFS固有のファイルのメタ情報の構造体を誰がいつ解放するかの設計の部分の甘さが露呈した感じ。