Skip to content

Commit

Permalink
mfplat: Do not mark the buffer as locked if Lock2D() fails.
Browse files Browse the repository at this point in the history
Signed-off-by: Giovanni Mascellani <[email protected]>
Signed-off-by: Nikolay Sivov <[email protected]>
Signed-off-by: Alexandre Julliard <[email protected]>
  • Loading branch information
giomasce authored and julliard committed Mar 17, 2022
1 parent cc9722e commit 44c9ea5
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions dlls/mfplat/buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -670,13 +670,14 @@ static HRESULT WINAPI d3d9_surface_buffer_Lock2D(IMF2DBuffer2 *iface, BYTE **sca

if (buffer->_2d.linear_buffer)
hr = MF_E_UNEXPECTED;
else if (!buffer->_2d.locks++)
else if (!buffer->_2d.locks)
{
hr = IDirect3DSurface9_LockRect(buffer->d3d9_surface.surface, &buffer->d3d9_surface.rect, NULL, 0);
}

if (SUCCEEDED(hr))
{
buffer->_2d.locks++;
*scanline0 = buffer->d3d9_surface.rect.pBits;
*pitch = buffer->d3d9_surface.rect.Pitch;
}
Expand Down Expand Up @@ -755,13 +756,14 @@ static HRESULT WINAPI d3d9_surface_buffer_Lock2DSize(IMF2DBuffer2 *iface, MF2DBu

if (buffer->_2d.linear_buffer)
hr = MF_E_UNEXPECTED;
else if (!buffer->_2d.locks++)
else if (!buffer->_2d.locks)
{
hr = IDirect3DSurface9_LockRect(buffer->d3d9_surface.surface, &buffer->d3d9_surface.rect, NULL, 0);
}

if (SUCCEEDED(hr))
{
buffer->_2d.locks++;
*scanline0 = buffer->d3d9_surface.rect.pBits;
*pitch = buffer->d3d9_surface.rect.Pitch;
if (buffer_start)
Expand Down

0 comments on commit 44c9ea5

Please sign in to comment.