(svn r16546) -Codechange: use array member instead of allocating in costructor and freeing in desctructor

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
smatz 16 years ago
parent 1c5ca9822d
commit fd191dd616

@ -12,7 +12,7 @@ struct CHashTableSlotT
Titem_ *m_pFirst; Titem_ *m_pFirst;
CHashTableSlotT() : m_pFirst(NULL) {} FORCEINLINE CHashTableSlotT() : m_pFirst(NULL) {}
/** hash table slot helper - clears the slot by simple forgetting its items */ /** hash table slot helper - clears the slot by simple forgetting its items */
FORCEINLINE void Clear() {m_pFirst = NULL;} FORCEINLINE void Clear() {m_pFirst = NULL;}
@ -133,19 +133,16 @@ protected:
* Titem contains pointer to the next item - GetHashNext(), SetHashNext() */ * Titem contains pointer to the next item - GetHashNext(), SetHashNext() */
typedef CHashTableSlotT<Titem_> Slot; typedef CHashTableSlotT<Titem_> Slot;
Slot *m_slots; // here we store our data (array of blobs) Slot m_slots[Tcapacity]; ///< here we store our data (array of blobs)
int m_num_items; // item counter int m_num_items; ///< item counter
public: public:
/* default constructor */ /* default constructor */
FORCEINLINE CHashTableT() FORCEINLINE CHashTableT() :
{ m_num_items(0)
/* construct all slots */ { }
m_slots = new Slot[Tcapacity];
m_num_items = 0;
}
~CHashTableT() {delete [] m_slots; m_num_items = 0; m_slots = NULL;} FORCEINLINE ~CHashTableT() { }
protected: protected:
/** static helper - return hash for the given key modulo number of slots */ /** static helper - return hash for the given key modulo number of slots */
@ -168,7 +165,10 @@ public:
FORCEINLINE int Count() const {return m_num_items;} FORCEINLINE int Count() const {return m_num_items;}
/** simple clear - forget all items - used by CSegmentCostCacheT.Flush() */ /** simple clear - forget all items - used by CSegmentCostCacheT.Flush() */
FORCEINLINE void Clear() const {for (int i = 0; i < Tcapacity; i++) m_slots[i].Clear();} FORCEINLINE void Clear()
{
for (size_t i = 0; i < lengthof(m_slots); i++) m_slots[i].Clear();
}
/** const item search */ /** const item search */
const Titem_ *Find(const Tkey& key) const const Titem_ *Find(const Tkey& key) const

Loading…
Cancel
Save