Changeset - r12636:77f2ef279327
[Not reviewed]
master
0 1 0
smatz - 15 years ago 2009-08-07 13:33:55
smatz@openttd.org
(svn r17101) -Revert [FS#3065](r16546): large table on stack caused stack overflow on some architectures
1 file changed with 10 insertions and 10 deletions:
0 comments (0 inline, 0 general)
src/misc/hashtable.hpp
Show inline comments
 
@@ -133,16 +133,19 @@ protected:
 
	 *  Titem contains pointer to the next item - GetHashNext(), SetHashNext() */
 
	typedef CHashTableSlotT<Titem_> Slot;
 

	
 
	Slot m_slots[Tcapacity]; ///< here we store our data (array of blobs)
 
	int  m_num_items;        ///< item counter
 
	Slot *m_slots;     // here we store our data (array of blobs)
 
	int   m_num_items; // item counter
 

	
 
public:
 
	/* default constructor */
 
	FORCEINLINE CHashTableT() :
 
		m_num_items(0)
 
	{ }
 
	FORCEINLINE CHashTableT()
 
	{
 
		/* construct all slots */
 
		m_slots = new Slot[Tcapacity];
 
		m_num_items = 0;
 
	}
 

	
 
	FORCEINLINE ~CHashTableT() { }
 
	~CHashTableT() {delete [] m_slots; m_num_items = 0; m_slots = NULL;}
 

	
 
protected:
 
	/** static helper - return hash for the given key modulo number of slots */
 
@@ -165,10 +168,7 @@ public:
 
	FORCEINLINE int Count() const {return m_num_items;}
 

	
 
	/** simple clear - forget all items - used by CSegmentCostCacheT.Flush() */
 
	FORCEINLINE void Clear()
 
	{
 
		for (size_t i = 0; i < lengthof(m_slots); i++) m_slots[i].Clear();
 
	}
 
	FORCEINLINE void Clear() const {for (int i = 0; i < Tcapacity; i++) m_slots[i].Clear();}
 

	
 
	/** const item search */
 
	const Titem_ *Find(const Tkey& key) const
0 comments (0 inline, 0 general)