Correctly check when the BBuffer failed the registration with the server.

Signed-off-by: Adrien Destugues <[email protected]>
This commit is contained in:
Dario Casalinuovo
2015-04-13 19:22:26 +02:00
committed by Adrien Destugues
parent 4232706dc8
commit 384ae40aa5
2 changed files with 14 additions and 7 deletions
+3 -1
View File
@@ -42,8 +42,10 @@ BufferCache::GetBuffer(media_buffer_id id)
buffer_clone_info info;
info.buffer = id;
BBuffer* buffer = new(std::nothrow) BBuffer(info);
if (buffer == NULL)
if (buffer == NULL || buffer->Data() == NULL) {
delete buffer;
return NULL;
}
try {
fMap.insert(std::make_pair(id, buffer));
+11 -6
View File
@@ -385,14 +385,19 @@ BBufferConsumer::HandleMessage(int32 message, const void* data, size_t size)
= static_cast<const consumer_buffer_received_command*>(data);
BBuffer* buffer = fBufferCache->GetBuffer(command->buffer);
buffer->SetHeader(&command->header);
if (buffer == NULL) {
ERROR("BBufferConsumer::CONSUMER_BUFFER_RECEIVED can't"
"find the buffer\n");
} else {
buffer->SetHeader(&command->header);
PRINT(4, "calling BBufferConsumer::BufferReceived buffer %ld at "
"perf %Ld and TimeSource()->Now() is %Ld\n",
buffer->Header()->buffer, buffer->Header()->start_time,
TimeSource()->Now());
PRINT(4, "calling BBufferConsumer::BufferReceived buffer %ld "
"at perf %Ld and TimeSource()->Now() is %Ld\n",
buffer->Header()->buffer, buffer->Header()->start_time,
TimeSource()->Now());
BufferReceived(buffer);
BufferReceived(buffer);
}
return B_OK;
}