int InsertHashElem(hashPtr_t pHash, const void* pKey, int nKey, const void* pData)
{
int hashValue = 0;
hashBucket_t hashBucket = {0};
elemPtr_t pNewElem = NULL;
assert(pHash && pKey && pData && nKey);
if(FindHashElem(pHash,pKey,nKey))
{
return HASH_FALSE;
}
initNewElem(&pNewElem,pKey,nKey,pData);
if(NULL == pHash->pHashTable)
{
/*initial bucket number is 8*/
resizeHashTable(pHash, 8);
}
hashValue = getHashValue(pHash,pKey,nKey);
insertElem(pHash,pNewElem,hashValue);
if(pHash->eCount >= pHash->bSize)
{
resizeHashTable(pHash, 2*pHash->bSize);
}
return HASH_TRUE;
}