summaryrefslogtreecommitdiff
path: root/src/misc/blob.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc/blob.hpp')
-rw-r--r--src/misc/blob.hpp50
1 files changed, 25 insertions, 25 deletions
diff --git a/src/misc/blob.hpp b/src/misc/blob.hpp
index 467261281..ed75ca5ab 100644
--- a/src/misc/blob.hpp
+++ b/src/misc/blob.hpp
@@ -49,14 +49,14 @@ class ByteBlob {
protected:
/** header of the allocated memory block */
struct BlobHeader {
- uint items; ///< actual blob size in bytes
- uint capacity; ///< maximum (allocated) size in bytes
+ size_t items; ///< actual blob size in bytes
+ size_t capacity; ///< maximum (allocated) size in bytes
};
/** type used as class member */
union {
- byte *data; ///< ptr to the first byte of data
- BlobHeader *header; ///< ptr just after the BlobHeader holding items and capacity
+ byte *data; ///< ptr to the first byte of data
+ BlobHeader *header; ///< ptr just after the BlobHeader holding items and capacity
};
private:
@@ -68,8 +68,8 @@ private:
static BlobHeader hdrEmpty[];
public:
- static const uint tail_reserve = 4; ///< four extra bytes will be always allocated and zeroed at the end
- static const uint header_size = sizeof(BlobHeader);
+ static const size_t tail_reserve = 4; ///< four extra bytes will be always allocated and zeroed at the end
+ static const size_t header_size = sizeof(BlobHeader);
/** default constructor - initializes empty blob */
FORCEINLINE ByteBlob() { InitEmpty(); }
@@ -97,7 +97,7 @@ public:
protected:
/** all allocation should happen here */
- static FORCEINLINE BlobHeader *RawAlloc(uint num_bytes)
+ static FORCEINLINE BlobHeader *RawAlloc(size_t num_bytes)
{
return (BlobHeader*)MallocT<byte>(num_bytes);
}
@@ -110,7 +110,7 @@ protected:
}
/** simple allocation policy - can be optimized later */
- static FORCEINLINE uint AllocPolicy(uint min_alloc)
+ static FORCEINLINE size_t AllocPolicy(size_t min_alloc)
{
if (min_alloc < (1 << 9)) {
if (min_alloc < (1 << 5)) return (1 << 5);
@@ -163,7 +163,7 @@ protected:
}
/** return reference to the actual blob size - used when the size needs to be modified */
- FORCEINLINE uint& LengthRef()
+ FORCEINLINE size_t& LengthRef()
{
return Hdr().items;
}
@@ -176,13 +176,13 @@ public:
}
/** return the number of valid data bytes in the blob */
- FORCEINLINE uint Length() const
+ FORCEINLINE size_t Length() const
{
return Hdr().items;
}
/** return the current blob capacity in bytes */
- FORCEINLINE uint Capacity() const
+ FORCEINLINE size_t Capacity() const
{
return Hdr().capacity;
}
@@ -215,7 +215,7 @@ public:
}
/** append new bytes at the end of existing data bytes - reallocates if necessary */
- FORCEINLINE void AppendRaw(const void *p, uint num_bytes)
+ FORCEINLINE void AppendRaw(const void *p, size_t num_bytes)
{
assert(p != NULL);
if (num_bytes > 0) {
@@ -233,16 +233,16 @@ public:
/** Reallocate if there is no free space for num_bytes bytes.
* @return pointer to the new data to be added */
- FORCEINLINE byte *Prepare(uint num_bytes)
+ FORCEINLINE byte *Prepare(size_t num_bytes)
{
- uint new_size = Length() + num_bytes;
+ size_t new_size = Length() + num_bytes;
if (new_size > Capacity()) SmartAlloc(new_size);
return data + Length();
}
/** Increase Length() by num_bytes.
* @return pointer to the new data added */
- FORCEINLINE byte *Append(uint num_bytes)
+ FORCEINLINE byte *Append(size_t num_bytes)
{
byte *pNewData = Prepare(num_bytes);
LengthRef() += num_bytes;
@@ -250,7 +250,7 @@ public:
}
/** reallocate blob data if needed */
- void SmartAlloc(uint new_size)
+ void SmartAlloc(size_t new_size)
{
if (Capacity() >= new_size) return;
/* calculate minimum block size we need to allocate
@@ -297,7 +297,7 @@ class CBlobT : public ByteBlob {
public:
typedef ByteBlob base;
- static const uint type_size = sizeof(T);
+ static const size_t type_size = sizeof(T);
struct OnTransfer {
typename base::BlobHeader *header;
@@ -323,7 +323,7 @@ public:
}
/** Check the validity of item index (only in debug mode) */
- FORCEINLINE void CheckIdx(uint index) const
+ FORCEINLINE void CheckIdx(size_t index) const
{
assert(index < Size());
}
@@ -341,46 +341,46 @@ public:
}
/** Return pointer to the index-th data item - non-const version */
- FORCEINLINE T *Data(uint index)
+ FORCEINLINE T *Data(size_t index)
{
CheckIdx(index);
return (Data() + index);
}
/** Return pointer to the index-th data item - const version */
- FORCEINLINE const T *Data(uint index) const
+ FORCEINLINE const T *Data(size_t index) const
{
CheckIdx(index);
return (Data() + index);
}
/** Return number of items in the Blob */
- FORCEINLINE uint Size() const
+ FORCEINLINE size_t Size() const
{
return (base::Length() / type_size);
}
/** Return total number of items that can fit in the Blob without buffer reallocation */
- FORCEINLINE uint MaxSize() const
+ FORCEINLINE size_t MaxSize() const
{
return (base::Capacity() / type_size);
}
/** Return number of additional items that can fit in the Blob without buffer reallocation */
- FORCEINLINE uint GetReserve() const
+ FORCEINLINE size_t GetReserve() const
{
return ((base::Capacity() - base::Length()) / type_size);
}
/** Grow number of data items in Blob by given number - doesn't construct items */
- FORCEINLINE T *GrowSizeNC(uint num_items)
+ FORCEINLINE T *GrowSizeNC(size_t num_items)
{
return (T*)base::Append(num_items * type_size);
}
/** Ensures that given number of items can be added to the end of Blob. Returns pointer to the
* first free (unused) item */
- FORCEINLINE T *MakeFreeSpace(uint num_items)
+ FORCEINLINE T *MakeFreeSpace(size_t num_items)
{
return (T*)base::Prepare(num_items * type_size);
}