-
ID:vMxr2E さんの質問

以下のプログラムでメモリーリークが起こってしまうのですが、どうしたらよいでしょうか?

list<LostResource*>::iterator it;
for( it = g_listLostResource.begin(); it != g_listLostResource.end(); it++ )
(*it)->Backup();

if (g_pD3DDev->TestCooperativeLevel() != D3DERR_DEVICENOTRESET )
return;

HRESULT hr = g_pD3DDev->Reset( &d3dpp );
if ( hr != D3D_OK )
PostQuitMessage(0);

for( it = g_listLostResource.begin(); it != g_listLostResource.end(); it++ )
(*it)->Recover( g_pD3DDev );

みんなの回答 1 件

ID:tN.Ku1 さんの回答

まずは可読性を高めよう。話はそれからだ。

ID:vMxr2E

list<LostResource*>::iterator it;
for( it = g_listLostResource.begin(); it != g_listLostResource.end(); it++ )
{
(*it)->Backup();
}
if (g_pD3DDev->TestCooperativeLevel() != D3DERR_DEVICENOTRESET )
{
return;
}
HRESULT hr = g_pD3DDev->Reset( &d3dpp );
if ( hr != D3D_OK )
{
PostQuitMessage(0);
}
for( it = g_listLostResource.begin(); it != g_listLostResource.end(); it++ )
{
(*it)->Recover( g_pD3DDev );
}

これでどうですか?

最終更新日:2016-05-16 (1,192 views)

関連するトピックス

ページ上部に戻る