MCPcopy Create free account
hub / github.com/defold/defold / dmHashFinal32

Function dmHashFinal32

engine/dlib/src/dlib/hash.cpp:425–458  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

423}
424
425uint32_t dmHashFinal32(HashState32* hash_state)
426{
427 const uint32_t m = 0x5bd1e995;
428 const int r = 24;
429 uint32_t s = hash_state->m_Size;
430 mmix(hash_state->m_Hash, hash_state->m_Tail);
431 mmix(hash_state->m_Hash, s);
432
433 hash_state->m_Hash ^= hash_state->m_Hash >> 13;
434 hash_state->m_Hash *= m;
435 hash_state->m_Hash ^= hash_state->m_Hash >> 15;
436
437 if (dmHashContainer().m_Enabled && hash_state->m_ReverseHashEntryIndex && hash_state->m_Size <= DMHASH_MAX_REVERSE_LENGTH)
438 {
439 DM_MUTEX_SCOPED_LOCK(dmHashContainer().m_Mutex);
440 dmHashTable32<ReverseHashEntry>* hash_table = &dmHashContainer().m_HashTable32Entries;
441 if (hash_table->Get(hash_state->m_Hash) == 0)
442 {
443 if (hash_table->Full())
444 {
445 IncreaseTableCapacity(hash_table, dmHashContainer().m_HashTableCapacityIncrement);
446 }
447 hash_table->Put(hash_state->m_Hash, dmHashContainer().m_HashStates[hash_state->m_ReverseHashEntryIndex]);
448 }
449 else
450 {
451 free(dmHashContainer().m_HashStates[hash_state->m_ReverseHashEntryIndex].m_Value);
452 }
453 dmHashContainer().FreeReverseHashStatesSlot(hash_state->m_ReverseHashEntryIndex);
454 hash_state->m_ReverseHashEntryIndex = 0;
455 }
456
457 return hash_state->m_Hash;
458}
459
460void dmHashRelease32(HashState32* hash_state)
461{

Callers 15

ReHashEmitterFunction · 0.85
TEST_FFunction · 0.85
dmHashCTestIncrementalFunction · 0.85
TEST_FFunction · 0.85
CalcBufferVersionFunction · 0.85
ReHashFunction · 0.85
ReHashFunction · 0.85
HashConstantFunction · 0.85
GetRenderConstantsHashFunction · 0.85
ReHashFunction · 0.85
AnimationReHashFunction · 0.85

Calls 6

IncreaseTableCapacityFunction · 0.85
freeFunction · 0.85
GetMethod · 0.45
FullMethod · 0.45
PutMethod · 0.45

Tested by 4

TEST_FFunction · 0.68
dmHashCTestIncrementalFunction · 0.68
TEST_FFunction · 0.68