Fixed CID 1292. If the allocation or adding to the list of the very first Buffer failed,

the buffer data would be leaked. Note that for failure to allocate later buffers, the
data is correctly freed in _FreeBuffers().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27459 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2008-09-12 17:24:32 +00:00
parent 0a28b4e324
commit 870dc73f78
@@ -266,6 +266,8 @@ MediaTrackAudioSupplier::_AllocateBuffers()
Buffer* buffer = new (nothrow) Buffer; Buffer* buffer = new (nothrow) Buffer;
if (!buffer || !fBuffers.AddItem(buffer)) { if (!buffer || !fBuffers.AddItem(buffer)) {
delete buffer; delete buffer;
if (fBuffers.CountItems() == 0)
delete[] data;
return; return;
} }
buffer->data = data; buffer->data = data;