BBuffer: initialize variables and cleanup
* Restore the BSmallBuffer exception in constructor, it's not actually implemented or used but it should still be keep safe. * Initialize some variables in BBuffer and BBufferGroup.
This commit is contained in:
@@ -190,17 +190,21 @@ BBuffer::BBuffer(const buffer_clone_info& info)
|
|||||||
fBufferList(NULL),
|
fBufferList(NULL),
|
||||||
fArea(-1),
|
fArea(-1),
|
||||||
fData(NULL),
|
fData(NULL),
|
||||||
fSize(0)
|
fOffset(0),
|
||||||
|
fSize(0),
|
||||||
|
fFlags(0)
|
||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
|
|
||||||
// Must be -1 if not registered
|
// Ensure that the media_header is clean
|
||||||
fMediaHeader.buffer = -1;
|
memset(&fMediaHeader, 0, sizeof(fMediaHeader));
|
||||||
|
|
||||||
// special case for BSmallBuffer
|
// special case for BSmallBuffer
|
||||||
if (info.area == 0 && info.buffer == 0)
|
if (info.area == 0 && info.buffer == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Must be -1 if registration fail
|
||||||
|
fMediaHeader.buffer = -1;
|
||||||
|
|
||||||
fBufferList = BPrivate::SharedBufferList::Get();
|
fBufferList = BPrivate::SharedBufferList::Get();
|
||||||
if (fBufferList == NULL) {
|
if (fBufferList == NULL) {
|
||||||
ERROR("BBuffer::BBuffer: BPrivate::SharedBufferList::Get() failed\n");
|
ERROR("BBuffer::BBuffer: BPrivate::SharedBufferList::Get() failed\n");
|
||||||
|
|||||||
@@ -25,9 +25,9 @@
|
|||||||
#include <DataExchange.h>
|
#include <DataExchange.h>
|
||||||
|
|
||||||
|
|
||||||
static BPrivate::SharedBufferList* sList;
|
static BPrivate::SharedBufferList* sList = NULL;
|
||||||
static area_id sArea;
|
static area_id sArea = -1;
|
||||||
static int32 sRefCount;
|
static int32 sRefCount = 0;
|
||||||
static BLocker sLocker("shared buffer list");
|
static BLocker sLocker("shared buffer list");
|
||||||
|
|
||||||
|
|
||||||
@@ -419,6 +419,7 @@ SharedBufferList::_Init()
|
|||||||
for (int32 i = 0; i < kMaxBuffers; i++) {
|
for (int32 i = 0; i < kMaxBuffers; i++) {
|
||||||
fInfos[i].id = -1;
|
fInfos[i].id = -1;
|
||||||
}
|
}
|
||||||
|
fCount = 0;
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user