changed the position of the mmgr parameter in some constructors.
removed StdMmgr::getInstance() and initialized the default mmgr inside Mmgr::getDFL() to work around an issue related to c++ initialization order across translation units
This commit is contained in:
@ -106,12 +106,12 @@ public:
|
||||
}
|
||||
|
||||
public:
|
||||
Array (qse_size_t capacity = DEFAULT_CAPACITY): Mmged(QSE_NULL)
|
||||
Array (Mmgr* mmgr = QSE_NULL): Mmged(mmgr)
|
||||
{
|
||||
this->init_array (capacity);
|
||||
this->init_array (DEFAULT_CAPACITY);
|
||||
}
|
||||
|
||||
Array (Mmgr* mmgr, qse_size_t capacity = DEFAULT_CAPACITY): Mmged(mmgr)
|
||||
Array (qse_size_t capacity, Mmgr* mmgr = QSE_NULL): Mmged(mmgr)
|
||||
{
|
||||
this->init_array (capacity);
|
||||
}
|
||||
|
@ -123,14 +123,14 @@ public:
|
||||
INVALID_INDEX = ParentType::INVALID_INDEX
|
||||
};
|
||||
|
||||
BinaryHeap (qse_size_t capacity = DEFAULT_CAPACITY): ParentType (QSE_NULL, capacity) {}
|
||||
BinaryHeap (Mmgr* mmgr = QSE_NULL): ParentType(DEFAULT_CAPACITY, mmgr) {}
|
||||
|
||||
BinaryHeap (Mmgr* mmgr, qse_size_t capacity = DEFAULT_CAPACITY): ParentType (mmgr, capacity) {}
|
||||
BinaryHeap (qse_size_t capacity, Mmgr* mmgr = QSE_NULL): ParentType(capacity, mmgr) {}
|
||||
|
||||
BinaryHeap (const SelfType& heap): ParentType (heap) {}
|
||||
BinaryHeap (const SelfType& heap): ParentType(heap) {}
|
||||
|
||||
#if defined(QSE_CPP_ENABLE_CPP11_MOVE)
|
||||
BinaryHeap (SelfType&& heap): ParentType (QSE_CPP_RVREF(heap)) {}
|
||||
BinaryHeap (SelfType&& heap): ParentType(QSE_CPP_RVREF(heap)) {}
|
||||
#endif
|
||||
|
||||
~BinaryHeap () {}
|
||||
|
@ -137,7 +137,7 @@ private:
|
||||
this->nodes[i] = QSE_NULL;
|
||||
}
|
||||
|
||||
this->datum_list = new(this->getMmgr()) DatumList (this->getMmgr(), mpb_size);
|
||||
this->datum_list = new(this->getMmgr()) DatumList(mpb_size, this->getMmgr());
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
@ -163,20 +163,14 @@ private:
|
||||
|
||||
public:
|
||||
HashList (
|
||||
qse_size_t node_capacity = DEFAULT_CAPACITY,
|
||||
qse_size_t load_factor = DEFAULT_LOAD_FACTOR,
|
||||
qse_size_t mpb_size = 0): Mmged(QSE_NULL)
|
||||
Mmgr* mmgr = QSE_NULL): Mmged(mmgr)
|
||||
{
|
||||
this->init_list (node_capacity, load_factor, mpb_size);
|
||||
this->init_list (DEFAULT_CAPACITY, DEFAULT_LOAD_FACTOR, 0);
|
||||
}
|
||||
|
||||
HashList (
|
||||
Mmgr* mmgr,
|
||||
qse_size_t node_capacity = DEFAULT_CAPACITY,
|
||||
qse_size_t load_factor = DEFAULT_LOAD_FACTOR,
|
||||
qse_size_t mpb_size = 0): Mmged(mmgr)
|
||||
HashList (qse_size_t node_capacity, qse_size_t load_factor = DEFAULT_LOAD_FACTOR, qse_size_t mpb_size = 0, Mmgr* mmgr = QSE_NULL): Mmged(mmgr)
|
||||
{
|
||||
this->init_list (node_capacity, load_factor, mpb_size);
|
||||
this->init_list (DEFAULT_CAPACITY, load_factor, mpb_size);
|
||||
}
|
||||
|
||||
HashList (const SelfType& list): Mmged(list)
|
||||
@ -198,8 +192,7 @@ public:
|
||||
}
|
||||
|
||||
// placement new
|
||||
this->datum_list = new(list.getMmgr())
|
||||
DatumList (list.getMmgr(), list.getMpool().getBlockSize());
|
||||
this->datum_list = new(list.getMmgr()) DatumList(list.getMpool().getBlockSize(), list.getMmgr());
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
@ -675,7 +668,7 @@ protected:
|
||||
// to be inserted are yielded off the original list and inserted
|
||||
// without new allocation.
|
||||
//SelfType temp (this->getMmgr(), this->_resizer(this->node_capacity), this->load_factor, mpool.getBlockSize());
|
||||
SelfType temp (this->getMmgr(), this->_resizer(this->node_capacity, this->getGrowthPolicy()), this->load_factor, 0);
|
||||
SelfType temp (this->_resizer(this->node_capacity, this->getGrowthPolicy()), this->load_factor, 0, this->getMmgr());
|
||||
Node* p = this->datum_list->getHeadNode();
|
||||
while (p)
|
||||
{
|
||||
|
@ -121,18 +121,17 @@ public:
|
||||
MIN_LOAD_FACTOR = PairList::MIN_LOAD_FACTOR
|
||||
};
|
||||
|
||||
HashTable (qse_size_t capacity = DEFAULT_CAPACITY,
|
||||
qse_size_t load_factor = DEFAULT_LOAD_FACTOR,
|
||||
qse_size_t mpb_size = 0):
|
||||
Mmged(QSE_NULL), pair_list(QSE_NULL, capacity, load_factor, mpb_size)
|
||||
HashTable (Mmgr* mmgr = QSE_NULL):
|
||||
Mmged(mmgr), pair_list(DEFAULT_CAPACITY, DEFAULT_LOAD_FACTOR, 0, mmgr)
|
||||
{
|
||||
}
|
||||
|
||||
HashTable (Mmgr* mmgr,
|
||||
qse_size_t capacity = DEFAULT_CAPACITY,
|
||||
|
||||
HashTable (qse_size_t capacity,
|
||||
qse_size_t load_factor = DEFAULT_LOAD_FACTOR,
|
||||
qse_size_t mpb_size = 0):
|
||||
Mmged(mmgr), pair_list(mmgr, capacity, load_factor, mpb_size)
|
||||
qse_size_t mpb_size = 0,
|
||||
Mmgr* mmgr = QSE_NULL):
|
||||
Mmged(mmgr), pair_list(capacity, load_factor, mpb_size, mmgr)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ QSE_BEGIN_NAMESPACE(QSE)
|
||||
/// managed by another memory manager.
|
||||
///
|
||||
/// \code
|
||||
/// QSE::HeapMmgr heap_mmgr (QSE::Mmgr::getDFL(), 30000);
|
||||
/// QSE::HeapMmgr heap_mmgr (30000, QSE::Mmgr::getDFL());
|
||||
/// QSE::LinkedList<int> int_list (&heap_mmgr);
|
||||
/// int_list.append (10);
|
||||
/// int_list.append (20);
|
||||
@ -49,11 +49,9 @@ QSE_BEGIN_NAMESPACE(QSE)
|
||||
class QSE_EXPORT HeapMmgr: public Mmgr, public Mmged
|
||||
{
|
||||
public:
|
||||
HeapMmgr (qse_size_t heap_size) QSE_CPP_NOEXCEPT;
|
||||
|
||||
/// The constructor function accepts an memory manager \a mmgr that
|
||||
/// is used to create a heap of the size \a heap_size.
|
||||
HeapMmgr (Mmgr* mmgr, qse_size_t heap_size) QSE_CPP_NOEXCEPT;
|
||||
HeapMmgr (qse_size_t heap_size, Mmgr* mmgr = QSE_NULL) QSE_CPP_NOEXCEPT;
|
||||
|
||||
/// The destructor function frees the heap. Memory areas returned by
|
||||
/// allocate(), reallocate(), allocMem(), reallocMem() are invalidated
|
||||
|
@ -211,16 +211,14 @@ public:
|
||||
this->clear (true);
|
||||
}
|
||||
|
||||
LinkedList (qse_size_t mpb_size = 0):
|
||||
Mmged(QSE_NULL), mp(QSE_NULL, QSE_SIZEOF(Node), mpb_size)
|
||||
LinkedList (Mmgr* mmgr = QSE_NULL): Mmged(mmgr), mp(QSE_NULL, QSE_SIZEOF(Node), 0)
|
||||
{
|
||||
this->node_count = 0;
|
||||
this->head_node = QSE_NULL;
|
||||
this->tail_node = QSE_NULL;
|
||||
}
|
||||
|
||||
LinkedList (Mmgr* mmgr, qse_size_t mpb_size = 0):
|
||||
Mmged(mmgr), mp(mmgr, QSE_SIZEOF(Node), mpb_size)
|
||||
LinkedList (qse_size_t mpb_size, Mmgr* mmgr = QSE_NULL): Mmged(mmgr), mp(mmgr, QSE_SIZEOF(Node), mpb_size)
|
||||
{
|
||||
this->node_count = 0;
|
||||
this->head_node = QSE_NULL;
|
||||
|
@ -98,13 +98,11 @@ public:
|
||||
typedef typename PairTree::ConstIterator ConstIterator;
|
||||
|
||||
|
||||
RedBlackTable (qse_size_t mpb_size = 0):
|
||||
Mmged(QSE_NULL), pair_tree(QSE_NULL, mpb_size)
|
||||
RedBlackTable (Mmgr* mmgr = QSE_NULL): Mmged(mmgr), pair_tree(mmgr, 0)
|
||||
{
|
||||
}
|
||||
|
||||
RedBlackTable (Mmgr* mmgr, qse_size_t mpb_size = 0):
|
||||
Mmged(mmgr), pair_tree(mmgr, mpb_size)
|
||||
RedBlackTable (qse_size_t mpb_size, Mmgr* mmgr = QSE_NULL): Mmged(mmgr), pair_tree(mpb_size, mmgr)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -340,18 +340,17 @@ private:
|
||||
}
|
||||
|
||||
public:
|
||||
RedBlackTree (qse_size_t mpb_size = 0):
|
||||
Mmged(QSE_NULL), mp(QSE_NULL, QSE_SIZEOF(Node), mpb_size), node_count(0)
|
||||
RedBlackTree (Mmgr* mmgr = QSE_NULL): Mmged(mmgr), mp(mmgr, QSE_SIZEOF(Node), 0), node_count(0)
|
||||
{
|
||||
this->init_tree ();
|
||||
}
|
||||
|
||||
RedBlackTree (Mmgr* mmgr, qse_size_t mpb_size = 0):
|
||||
Mmged(mmgr), mp(mmgr, QSE_SIZEOF(Node), mpb_size), node_count(0)
|
||||
RedBlackTree (qse_size_t mpb_size, Mmgr* mmgr = QSE_NULL): Mmged(mmgr), mp(QSE_NULL, QSE_SIZEOF(Node), mpb_size), node_count(0)
|
||||
{
|
||||
this->init_tree ();
|
||||
}
|
||||
|
||||
|
||||
RedBlackTree (const SelfType& rbt):
|
||||
Mmged(rbt.getMmgr()),
|
||||
mp(rbt.getMmgr(), rbt.mp.getDatumSize(), rbt.mp.getBlockSize()),
|
||||
|
@ -46,9 +46,11 @@ public:
|
||||
void* reallocMem (void* ptr, qse_size_t n) QSE_CPP_NOEXCEPT;
|
||||
void freeMem (void* ptr) QSE_CPP_NOEXCEPT;
|
||||
|
||||
#if 0
|
||||
/// The getInstance() function returns the stock instance of the StdMmgr
|
||||
/// class.
|
||||
static StdMmgr* getInstance () QSE_CPP_NOEXCEPT;
|
||||
#endif
|
||||
};
|
||||
|
||||
/////////////////////////////////
|
||||
|
@ -185,8 +185,7 @@ private:
|
||||
typedef StrBase<qse_wchar_t, QSE_WT('\0'), WcStringOpset> ParentType;
|
||||
|
||||
public:
|
||||
WcString (): ParentType() {}
|
||||
WcString (Mmgr* mmgr): ParentType(mmgr) {}
|
||||
WcString (Mmgr* mmgr = QSE_NULL): ParentType(mmgr) {}
|
||||
WcString (int capacity, Mmgr* mmgr = QSE_NULL): ParentType(capacity, mmgr) {}
|
||||
WcString (qse_size_t capacity, Mmgr* mmgr = QSE_NULL): ParentType(capacity, mmgr) {}
|
||||
WcString (const qse_wchar_t* str, Mmgr* mmgr = QSE_NULL): ParentType(str, mmgr) {}
|
||||
@ -217,8 +216,7 @@ private:
|
||||
typedef StrBase<qse_mchar_t, QSE_MT('\0'), MbStringOpset> ParentType;
|
||||
|
||||
public:
|
||||
MbString (): ParentType() {}
|
||||
MbString (Mmgr* mmgr): ParentType(mmgr) {}
|
||||
MbString (Mmgr* mmgr = QSE_NULL): ParentType(mmgr) {}
|
||||
MbString (int capacity, Mmgr* mmgr = QSE_NULL): ParentType(capacity, mmgr) {}
|
||||
MbString (qse_size_t capacity, Mmgr* mmgr = QSE_NULL): ParentType(capacity, mmgr) {}
|
||||
MbString (const qse_mchar_t* str, Mmgr* mmgr = QSE_NULL): ParentType(str, mmgr) {}
|
||||
|
@ -36,10 +36,10 @@ class SttpCmd: public QSE::Array<QSE::String>
|
||||
{
|
||||
public:
|
||||
SttpCmd (const qse_char_t* n = QSE_T(""), QSE::Mmgr* mmgr = QSE_NULL):
|
||||
QSE::Array<QSE::String>(mmgr, 20), name (n) {}
|
||||
QSE::Array<QSE::String>(20, mmgr), name (n) {}
|
||||
|
||||
SttpCmd (const QSE::String& n, QSE::Mmgr* mmgr = QSE_NULL):
|
||||
QSE::Array<QSE::String>(mmgr, 20), name (n) {}
|
||||
QSE::Array<QSE::String>(20, mmgr), name (n) {}
|
||||
|
||||
qse_size_t getArgCount () const
|
||||
{
|
||||
|
Reference in New Issue
Block a user