mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-12-07 18:48:22 +00:00
Fix UtlHash for 64-bit.
This commit is contained in:
parent
90995ab9ec
commit
6e19ef7779
@ -489,7 +489,7 @@ inline void CUtlHash<Data, C, K>::Dump( )
|
||||
// Number of buckets must be a power of 2.
|
||||
// Key must be 32-bits (unsigned int).
|
||||
//
|
||||
typedef int UtlHashFastHandle_t;
|
||||
typedef intp UtlHashFastHandle_t;
|
||||
|
||||
#define UTLHASH_POOL_SCALAR 2
|
||||
|
||||
@ -534,15 +534,15 @@ public:
|
||||
// int Count( void ) const;
|
||||
|
||||
// Insertion.
|
||||
UtlHashFastHandle_t Insert( unsigned int uiKey, const Data &data );
|
||||
UtlHashFastHandle_t FastInsert( unsigned int uiKey, const Data &data );
|
||||
UtlHashFastHandle_t Insert( uintp uiKey, const Data &data );
|
||||
UtlHashFastHandle_t FastInsert( uintp uiKey, const Data &data );
|
||||
|
||||
// Removal.
|
||||
void Remove( UtlHashFastHandle_t hHash );
|
||||
void RemoveAll( void );
|
||||
|
||||
// Retrieval.
|
||||
UtlHashFastHandle_t Find( unsigned int uiKey ) const;
|
||||
UtlHashFastHandle_t Find( uintp uiKey ) const;
|
||||
|
||||
Data &Element( UtlHashFastHandle_t hHash );
|
||||
Data const &Element( UtlHashFastHandle_t hHash ) const;
|
||||
@ -571,7 +571,7 @@ public:
|
||||
template <typename HashData>
|
||||
struct HashFastData_t_
|
||||
{
|
||||
unsigned int m_uiKey;
|
||||
uintp m_uiKey;
|
||||
HashData m_Data;
|
||||
};
|
||||
|
||||
@ -650,7 +650,7 @@ template<class Data, class HashFuncs> inline int CUtlHashFast<Data,HashFuncs>::C
|
||||
// Purpose: Insert data into the hash table given its key (unsigned int), with
|
||||
// a check to see if the element already exists within the tree.
|
||||
//-----------------------------------------------------------------------------
|
||||
template<class Data, class HashFuncs> inline UtlHashFastHandle_t CUtlHashFast<Data,HashFuncs>::Insert( unsigned int uiKey, const Data &data )
|
||||
template<class Data, class HashFuncs> inline UtlHashFastHandle_t CUtlHashFast<Data,HashFuncs>::Insert( uintp uiKey, const Data &data )
|
||||
{
|
||||
// Check to see if that key already exists in the buckets (should be unique).
|
||||
UtlHashFastHandle_t hHash = Find( uiKey );
|
||||
@ -664,10 +664,10 @@ template<class Data, class HashFuncs> inline UtlHashFastHandle_t CUtlHashFast<Da
|
||||
// Purpose: Insert data into the hash table given its key (unsigned int),
|
||||
// without a check to see if the element already exists within the tree.
|
||||
//-----------------------------------------------------------------------------
|
||||
template<class Data, class HashFuncs> inline UtlHashFastHandle_t CUtlHashFast<Data,HashFuncs>::FastInsert( unsigned int uiKey, const Data &data )
|
||||
template<class Data, class HashFuncs> inline UtlHashFastHandle_t CUtlHashFast<Data,HashFuncs>::FastInsert( uintp uiKey, const Data &data )
|
||||
{
|
||||
// Get a new element from the pool.
|
||||
int iHashData = m_aDataPool.Alloc( true );
|
||||
intp iHashData = m_aDataPool.Alloc( true );
|
||||
HashFastData_t *pHashData = &m_aDataPool[iHashData];
|
||||
if ( !pHashData )
|
||||
return InvalidHandle();
|
||||
@ -716,12 +716,12 @@ template<class Data, class HashFuncs> inline void CUtlHashFast<Data,HashFuncs>::
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
template<class Data, class HashFuncs> inline UtlHashFastHandle_t CUtlHashFast<Data,HashFuncs>::Find( unsigned int uiKey ) const
|
||||
template<class Data, class HashFuncs> inline UtlHashFastHandle_t CUtlHashFast<Data,HashFuncs>::Find( uintp uiKey ) const
|
||||
{
|
||||
// hash the "key" - get the correct hash table "bucket"
|
||||
int iBucket = HashFuncs::Hash( uiKey, m_uiBucketMask );
|
||||
|
||||
for ( int iElement = m_aBuckets[iBucket]; iElement != m_aDataPool.InvalidIndex(); iElement = m_aDataPool.Next( iElement ) )
|
||||
for ( intp iElement = m_aBuckets[iBucket]; iElement != m_aDataPool.InvalidIndex(); iElement = m_aDataPool.Next( iElement ) )
|
||||
{
|
||||
if ( m_aDataPool[iElement].m_uiKey == uiKey )
|
||||
return iElement;
|
||||
@ -832,7 +832,7 @@ template<class Data, class HashFuncs> inline bool CUtlHashFast<Data,HashFuncs>::
|
||||
// Number of buckets must be a power of 2.
|
||||
// Key must be 32-bits (unsigned int).
|
||||
//
|
||||
typedef int UtlHashFixedHandle_t;
|
||||
typedef intp UtlHashFixedHandle_t;
|
||||
|
||||
template <int NUM_BUCKETS>
|
||||
class CUtlHashFixedGenericHash
|
||||
|
||||
Loading…
Reference in New Issue
Block a user