Skip to content

Commit eb276d1

Browse files
committed
Fix memory leak in case screenshot fails
1 parent d3a059b commit eb276d1

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

Client/core/CScreenGrabber.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ bool CScreenGrabber::GetBackBufferPixels(uint uiSizeX, uint uiSizeY, CBuffer& bu
242242
if (!m_pScreenShotTemp)
243243
{
244244
strOutError = "No ScreenShotTemp";
245+
SAFE_RELEASE(pD3DBackBufferSurface);
245246
return false;
246247
}
247248

@@ -251,6 +252,7 @@ bool CScreenGrabber::GetBackBufferPixels(uint uiSizeX, uint uiSizeY, CBuffer& bu
251252
if (FAILED(hr))
252253
{
253254
strOutError = SString("StretchRect failed (0x%08x)", hr);
255+
SAFE_RELEASE(pD3DBackBufferSurface);
254256
return false;
255257
}
256258

@@ -260,6 +262,7 @@ bool CScreenGrabber::GetBackBufferPixels(uint uiSizeX, uint uiSizeY, CBuffer& bu
260262
if (!m_pScreenShotTemp->ReadPixels(buffer, strOutError))
261263
{
262264
dassert(!strOutError.empty());
265+
SAFE_RELEASE(pD3DBackBufferSurface);
263266
return false;
264267
}
265268

0 commit comments

Comments
 (0)