The BlockArray class is now longer used, and strlcpy() is part of the Haiku kernel anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14416 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -70,89 +70,3 @@ sorted_array::Remove(off_t value)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
|
||||||
|
|
||||||
|
|
||||||
BlockArray::BlockArray(int32 blockSize)
|
|
||||||
:
|
|
||||||
fArray(NULL),
|
|
||||||
fBlockSize(blockSize),
|
|
||||||
fSize(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BlockArray::~BlockArray()
|
|
||||||
{
|
|
||||||
free(fArray);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int32
|
|
||||||
BlockArray::Find(off_t value)
|
|
||||||
{
|
|
||||||
if (fArray == NULL)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return fArray->Find(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
status_t
|
|
||||||
BlockArray::Insert(off_t value)
|
|
||||||
{
|
|
||||||
if (fArray == NULL || fArray->count + 1 > fMaxBlocks) {
|
|
||||||
sorted_array *array = (sorted_array *)realloc(fArray,fSize + fBlockSize);
|
|
||||||
if (array == NULL)
|
|
||||||
return B_NO_MEMORY;
|
|
||||||
|
|
||||||
if (fArray == NULL)
|
|
||||||
array->count = 0;
|
|
||||||
|
|
||||||
fArray = array;
|
|
||||||
fSize += fBlockSize;
|
|
||||||
fMaxBlocks = fSize / sizeof(off_t) - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
fArray->Insert(value);
|
|
||||||
return B_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
status_t
|
|
||||||
BlockArray::Remove(off_t value)
|
|
||||||
{
|
|
||||||
if (fArray == NULL)
|
|
||||||
return B_ENTRY_NOT_FOUND;
|
|
||||||
|
|
||||||
return fArray->Remove(value) ? B_OK : B_ENTRY_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BlockArray::MakeEmpty()
|
|
||||||
{
|
|
||||||
if (fArray != NULL)
|
|
||||||
fArray->count = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
|
||||||
|
|
||||||
|
|
||||||
extern "C" size_t
|
|
||||||
strlcpy(char *dest, char const *source, size_t length)
|
|
||||||
{
|
|
||||||
if (length == 0)
|
|
||||||
return strlen(source);
|
|
||||||
|
|
||||||
size_t i = 0;
|
|
||||||
for (; i < length - 1 && source[i]; i++)
|
|
||||||
dest[i] = source[i];
|
|
||||||
|
|
||||||
dest[i] = '\0';
|
|
||||||
|
|
||||||
return i + strlen(source + i);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -34,33 +34,4 @@ sorted_array::Find(off_t value) const
|
|||||||
return FindInternal(value,i) ? i : -1;
|
return FindInternal(value,i) ? i : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// The BlockArray reserves a multiple of "blockSize" and
|
|
||||||
// maintain array size for new entries.
|
|
||||||
// This is used for the in-memory log entries before they
|
|
||||||
// are written to disk.
|
|
||||||
|
|
||||||
class BlockArray {
|
|
||||||
public:
|
|
||||||
BlockArray(int32 blockSize);
|
|
||||||
~BlockArray();
|
|
||||||
|
|
||||||
int32 Find(off_t value);
|
|
||||||
status_t Insert(off_t value);
|
|
||||||
status_t Remove(off_t value);
|
|
||||||
|
|
||||||
void MakeEmpty();
|
|
||||||
|
|
||||||
int32 CountItems() const { return fArray != NULL ? fArray->count : 0; }
|
|
||||||
int32 BlocksUsed() const { return fArray != NULL ? ((fArray->count + 1) * sizeof(off_t) + fBlockSize - 1) / fBlockSize : 0; }
|
|
||||||
sorted_array *Array() const { return fArray; }
|
|
||||||
int32 Size() const { return fSize; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
sorted_array *fArray;
|
|
||||||
int32 fBlockSize;
|
|
||||||
int32 fSize;
|
|
||||||
int32 fMaxBlocks;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* UTILITY_H */
|
#endif /* UTILITY_H */
|
||||||
|
|||||||
Reference in New Issue
Block a user