From 9ef695ff8b4bd65340c42a44244cb7c0b3d11a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Wed, 9 Sep 2015 20:19:18 -0700 Subject: [PATCH] Removed blockalloc.h --- include/bx/blockalloc.h | 99 ----------------------------------------- 1 file changed, 99 deletions(-) delete mode 100644 include/bx/blockalloc.h diff --git a/include/bx/blockalloc.h b/include/bx/blockalloc.h deleted file mode 100644 index 5bbeb1f..0000000 --- a/include/bx/blockalloc.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2010-2015 Branimir Karadzic. All rights reserved. - * License: http://www.opensource.org/licenses/BSD-2-Clause - */ - -#ifndef BX_BLOCKALLOC_H_HEADER_GUARD -#define BX_BLOCKALLOC_H_HEADER_GUARD - -#include "bx.h" - -namespace bx -{ - class BlockAlloc - { - public: - static const uint16_t invalidIndex = 0xffff; - static const uint32_t minElementSize = 2; - - BlockAlloc() - : m_data(NULL) - , m_num(0) - , m_size(0) - , m_numFree(0) - , m_freeIndex(invalidIndex) - { - } - - BlockAlloc(void* _data, uint16_t _num, uint16_t _size) - : m_data(_data) - , m_num(_num) - , m_size(_size) - , m_numFree(_num) - , m_freeIndex(0) - { - char* data = (char*)_data; - uint16_t* index = (uint16_t*)_data; - for (uint16_t ii = 0; ii < m_num-1; ++ii) - { - *index = ii+1; - data += m_size; - index = (uint16_t*)data; - } - *index = invalidIndex; - } - - ~BlockAlloc() - { - } - - void* alloc() - { - if (invalidIndex == m_freeIndex) - { - return NULL; - } - - void* obj = ( (char*)m_data) + m_freeIndex*m_size; - m_freeIndex = *( (uint16_t*)obj); - --m_numFree; - - return obj; - } - - void free(void* _obj) - { - uint16_t index = getIndex(_obj); - BX_CHECK(index < m_num, "index %d, m_num %d", index, m_num); - - *( (uint16_t*)_obj) = m_freeIndex; - m_freeIndex = index; - ++m_numFree; - } - - uint16_t getIndex(void* _obj) const - { - return (uint16_t)( ( (char*)_obj - (char*)m_data ) / m_size); - } - - uint16_t getNumFree() const - { - return m_numFree; - } - - void* getFromIndex(uint16_t _index) - { - return (char*)m_data + _index*m_size; - } - - private: - void* m_data; - uint16_t m_num; - uint16_t m_size; - uint16_t m_numFree; - uint16_t m_freeIndex; - }; - -} // namespace bx - -#endif // BX_BLOCKALLOC_H_HEADER_GUARD