Fix missing space.

Fix file being in CR/LF format.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37440 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rene Gollent
2010-07-09 13:57:46 +00:00
parent 05754f2fdc
commit 852b01198c
+167 -167
View File
@@ -1,167 +1,167 @@
/* /*
* Copyright 2009, Haiku, Inc. All Rights Reserved. * Copyright 2009, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
* Bruno Albuquerque, [email protected] * Bruno Albuquerque, [email protected]
*/ */
#include "DynamicBuffer.h" #include "DynamicBuffer.h"
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <Errors.h> #include <Errors.h>
#include <SupportDefs.h> #include <SupportDefs.h>
#include <new> #include <new>
DynamicBuffer::DynamicBuffer(size_t initialSize) : DynamicBuffer::DynamicBuffer(size_t initialSize) :
fBuffer(NULL), fBuffer(NULL),
fBufferSize(0), fBufferSize(0),
fDataStart(0), fDataStart(0),
fDataEnd(0), fDataEnd(0),
fInit(B_NO_INIT) fInit(B_NO_INIT)
{ {
if (initialSize >= 0) { if (initialSize >= 0) {
fBuffer = new (std::nothrow) unsigned char[initialSize]; fBuffer = new (std::nothrow) unsigned char[initialSize];
if (fBuffer != NULL) { if (fBuffer != NULL) {
fBufferSize = initialSize; fBufferSize = initialSize;
fInit = B_OK; fInit = B_OK;
} }
} }
} }
DynamicBuffer::~DynamicBuffer() DynamicBuffer::~DynamicBuffer()
{ {
delete[] fBuffer; delete[] fBuffer;
fBufferSize = 0; fBufferSize = 0;
fDataStart = 0; fDataStart = 0;
fDataEnd = 0; fDataEnd = 0;
} }
DynamicBuffer::DynamicBuffer(const DynamicBuffer& buffer) : DynamicBuffer::DynamicBuffer(const DynamicBuffer& buffer) :
fBuffer(NULL), fBuffer(NULL),
fBufferSize(0), fBufferSize(0),
fDataStart(0), fDataStart(0),
fDataEnd(0), fDataEnd(0),
fInit(B_NO_INIT) fInit(B_NO_INIT)
{ {
fInit = buffer.fInit; fInit = buffer.fInit;
if (fInit == B_OK) { if (fInit == B_OK) {
status_t result = _GrowToFit(buffer.fBufferSize, true); status_t result = _GrowToFit(buffer.fBufferSize, true);
if (result == B_OK) { if (result == B_OK) {
memcpy(fBuffer, buffer.fBuffer, fBufferSize); memcpy(fBuffer, buffer.fBuffer, fBufferSize);
fDataStart = buffer.fDataStart; fDataStart = buffer.fDataStart;
fDataEnd = buffer.fDataEnd; fDataEnd = buffer.fDataEnd;
} else } else
fInit = result; fInit = result;
} }
} }
status_t status_t
DynamicBuffer::InitCheck() const DynamicBuffer::InitCheck() const
{ {
return fInit; return fInit;
} }
status_t status_t
DynamicBuffer::Insert(const void* data, size_t size) DynamicBuffer::Insert(const void* data, size_t size)
{ {
if (fInit != B_OK) if (fInit != B_OK)
return fInit; return fInit;
status_t result = _GrowToFit(size); status_t result = _GrowToFit(size);
if (result != B_OK) if (result != B_OK)
return result; return result;
memcpy(fBuffer + fDataEnd, data, size); memcpy(fBuffer + fDataEnd, data, size);
fDataEnd += size; fDataEnd += size;
return B_OK; return B_OK;
} }
status_t status_t
DynamicBuffer::Remove(void* data, size_t size) DynamicBuffer::Remove(void* data, size_t size)
{ {
if (fInit != B_OK) if (fInit != B_OK)
return fInit; return fInit;
if (fDataStart + size > fDataEnd) if (fDataStart + size > fDataEnd)
return B_BUFFER_OVERFLOW; return B_BUFFER_OVERFLOW;
memcpy(data, fBuffer + fDataStart, size); memcpy(data, fBuffer + fDataStart, size);
fDataStart += size; fDataStart += size;
if (fDataStart == fDataEnd) if (fDataStart == fDataEnd)
fDataStart = fDataEnd = 0; fDataStart = fDataEnd = 0;
return B_OK; return B_OK;
} }
unsigned char* unsigned char*
DynamicBuffer::Data() const DynamicBuffer::Data() const
{ {
return fBuffer + fDataStart; return fBuffer + fDataStart;
} }
size_t size_t
DynamicBuffer::Size() const DynamicBuffer::Size() const
{ {
return fDataEnd - fDataStart; return fDataEnd - fDataStart;
} }
size_t size_t
DynamicBuffer::BytesRemaining() const DynamicBuffer::BytesRemaining() const
{ {
return fBufferSize -fDataEnd; return fBufferSize - fDataEnd;
} }
void void
DynamicBuffer::PrintToStream() DynamicBuffer::PrintToStream()
{ {
printf("Current buffer size : %ld\n", fBufferSize); printf("Current buffer size : %ld\n", fBufferSize);
printf("Data start position : %ld\n", fDataStart); printf("Data start position : %ld\n", fDataStart);
printf("Data end position : %ld\n", fDataEnd); printf("Data end position : %ld\n", fDataEnd);
printf("Bytes wasted : %ld\n", fDataStart); printf("Bytes wasted : %ld\n", fDataStart);
printf("Bytes available : %ld\n", fBufferSize - fDataEnd); printf("Bytes available : %ld\n", fBufferSize - fDataEnd);
} }
status_t status_t
DynamicBuffer::_GrowToFit(size_t size, bool exact) DynamicBuffer::_GrowToFit(size_t size, bool exact)
{ {
if (size <= fBufferSize - fDataEnd) if (size <= fBufferSize - fDataEnd)
return B_OK; return B_OK;
size_t newSize; size_t newSize;
if (!exact) if (!exact)
newSize = (fBufferSize + size) * 2; newSize = (fBufferSize + size) * 2;
else else
newSize = size; newSize = size;
unsigned char* newBuffer = new (std::nothrow) unsigned char[newSize]; unsigned char* newBuffer = new (std::nothrow) unsigned char[newSize];
if (newBuffer == NULL) if (newBuffer == NULL)
return B_NO_MEMORY; return B_NO_MEMORY;
if (fDataStart != fDataEnd) { if (fDataStart != fDataEnd) {
memcpy(newBuffer, fBuffer + fDataStart, fDataEnd - fDataStart); memcpy(newBuffer, fBuffer + fDataStart, fDataEnd - fDataStart);
} }
delete[] fBuffer; delete[] fBuffer;
fBuffer = newBuffer; fBuffer = newBuffer;
fDataEnd -= fDataStart; fDataEnd -= fDataStart;
fDataStart = 0; fDataStart = 0;
fBufferSize = newSize; fBufferSize = newSize;
return B_OK; return B_OK;
} }