mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-08-17 07:20:48 +03:00
delete unused class. Merge pages in mempool
This commit is contained in:
parent
f1f815669a
commit
afc2942e37
@ -97,6 +97,16 @@ uint8_t *MemPool::More(std::size_t size)
|
|||||||
|
|
||||||
void MemPool::Reset()
|
void MemPool::Reset()
|
||||||
{
|
{
|
||||||
|
if (m_pages.size() > 1) {
|
||||||
|
size_t total = 0;
|
||||||
|
for (size_t i = 0; i < m_pages.size(); ++i) {
|
||||||
|
total += m_pages[i]->size;
|
||||||
|
}
|
||||||
|
RemoveAllInColl(m_pages);
|
||||||
|
Page* page = new Page(total);
|
||||||
|
m_pages.push_back(page);
|
||||||
|
}
|
||||||
|
|
||||||
m_currPage = 0;
|
m_currPage = 0;
|
||||||
current_ = m_pages[0]->mem;
|
current_ = m_pages[0]->mem;
|
||||||
}
|
}
|
||||||
|
@ -70,78 +70,6 @@ private:
|
|||||||
MemPool &operator=(const MemPool &);
|
MemPool &operator=(const MemPool &);
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
template<typename T>
|
|
||||||
class ObjectPoolContiguous
|
|
||||||
{
|
|
||||||
|
|
||||||
public:
|
|
||||||
ObjectPoolContiguous(std::size_t initSize = 100000) :
|
|
||||||
m_size(0), m_actualSize(initSize) {
|
|
||||||
m_vec = (T*) malloc(sizeof(T) * initSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
~ObjectPoolContiguous() {
|
|
||||||
free(m_vec);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Add(T &obj) {
|
|
||||||
if (m_size >= m_actualSize) {
|
|
||||||
//std::cerr << std::endl << "MORE " << m_size << std::endl;
|
|
||||||
m_actualSize *= 2;
|
|
||||||
m_vec = (T*) realloc(m_vec, sizeof(T) * m_actualSize);
|
|
||||||
|
|
||||||
}
|
|
||||||
m_vec[m_size] = obj;
|
|
||||||
++m_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IsEmpty() const {
|
|
||||||
return m_size == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Reset() {
|
|
||||||
m_size = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// vector op
|
|
||||||
size_t GetSize() const {
|
|
||||||
return m_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
const T& operator[](size_t ind) const {
|
|
||||||
return m_vec[ind];
|
|
||||||
}
|
|
||||||
|
|
||||||
// stack op
|
|
||||||
const T &Get() const {
|
|
||||||
return m_vec[m_size - 1];
|
|
||||||
}
|
|
||||||
|
|
||||||
void Pop() {
|
|
||||||
--m_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
T *GetData() {
|
|
||||||
return m_vec;
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename ORDERER>
|
|
||||||
void Sort(const ORDERER &orderer) {
|
|
||||||
std::sort(m_vec, m_vec + m_size, orderer);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
T *m_vec;
|
|
||||||
size_t m_size, m_actualSize;
|
|
||||||
|
|
||||||
// no copying
|
|
||||||
ObjectPoolContiguous(const ObjectPoolContiguous &);
|
|
||||||
ObjectPoolContiguous &operator=(const ObjectPoolContiguous &);
|
|
||||||
};
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user