2011年6月17日金曜日

Fix wavi

昨日、ちょっとしたきっかけで、wavi.exeがクラッシュすることがあるのに気づいた。
なぜか音声ファイル(.wav)の書き出し終了時に落ちるのである。

(Chikuzen) wavi.exeが何故かクラッシュするのでコードを覗いてみたが
(Chikuzen) あまりにも汚いので10分の1で投げ出してしまった
(VFRmaniac) 笑
(Chikuzen)とりあえずCleanupAndExit()でクラッシュするみたいなので、そのあたりにfprintfを大量に仕込んでみると
(Chikuzen) LocalFree()で失敗することがわかった
(VFRmaniac) いきなり長文のstderrで吹いた
(VFRmaniac) 二重解放?
(Chikuzen) 多分そう >二重開放
(Chikuzen) そもそもどこでバッファ確保してるんだろ、これ
(VFRmaniac) ちょっとまて...
(VFRmaniac) LPBYTE buffer[2][BUFFER_SIZE];
(VFRmaniac) これ、動的に確保してなくね?
(VFRmaniac) LocalAlloc も LocalReAllocもみつかんねーぞ!
(VFRmaniac) http://msdn.microsoft.com/ja-jp/library/cc430156.aspx
(VFRmaniac) この行 不要じゃね?
(Chikuzen) そうよね、配列使って静的に確保してるよね

てなわけで直ったので、ついでにtebasuna51氏のパッチあててDoom9に置いてきました
http://forum.doom9.org/showthread.php?t=161639

0 件のコメント:

コメントを投稿