Correctly check when the BBuffer failed the registration with the server.
Signed-off-by: Adrien Destugues <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
4232706dc8
commit
384ae40aa5
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user