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:
Dario Casalinuovo
2015-07-11 15:40:17 +02:00
parent 8c19f07f3c
commit 331792160a
2 changed files with 12 additions and 7 deletions
+8 -4
View File
@@ -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");
+4 -3
View File
@@ -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;
} }