Skip to content

Commit 3746241

Browse files
committed
Cleanup simdhash failure handling
1 parent 9b360a1 commit 3746241

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/coreclr/interpreter/compiler.h

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,9 @@ class InterpCompiler
550550
{
551551
if (!PointerInNameMap(ptr))
552552
{
553-
dn_simdhash_ptr_ptr_try_add(m_pointerToNameMap.GetValue(), ptr, (void*)name);
553+
dn_simdhash_add_result addResult = dn_simdhash_ptr_ptr_try_add(m_pointerToNameMap.GetValue(), ptr, (void*)name);
554+
if (addResult < 0)
555+
NOMEM();
554556
}
555557
}
556558
void PrintNameInPointerMap(void* ptr);
@@ -868,7 +870,19 @@ int32_t InterpDataItemIndexMap::GetDataItemIndexForT(const T& lookup)
868870
VarSizedDataWithPayload<T>* pLookup = new(hashItemPayload) VarSizedDataWithPayload<T>();
869871
memcpy(&pLookup->payload, &lookup, sizeof(T));
870872

871-
dn_simdhash_ght_insert(hash, (void*)pLookup, (void*)(size_t)dataItemIndex);
873+
dn_simdhash_add_result addResult = dn_simdhash_ght_try_insert(
874+
hash, (void*)pLookup, (void*)(size_t)dataItemIndex, DN_SIMDHASH_INSERT_MODE_ENSURE_UNIQUE
875+
);
876+
switch (addResult) {
877+
case DN_SIMDHASH_OUT_OF_MEMORY:
878+
NOMEM();
879+
break;
880+
case DN_SIMDHASH_ADD_OVERWROTE:
881+
case DN_SIMDHASH_INTERNAL_ERROR:
882+
assert(!"Internal error in dn_simdhash");
883+
break;
884+
}
885+
872886
return dataItemIndex;
873887
}
874888

src/coreclr/interpreter/stackmap.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ InterpreterStackMap* GetInterpreterStackMap(ICorJitInfo* jitInfo, CORINFO_CLASS_
3030
{
3131
result = new InterpreterStackMap(jitInfo, classHandle);
3232
dn_simdhash_add_result addResult = dn_simdhash_ptr_ptr_try_add(t_sharedStackMapLookup, classHandle, result);
33-
assert(addResult == DN_SIMDHASH_ADD_INSERTED);
3433
if (addResult == DN_SIMDHASH_OUT_OF_MEMORY)
3534
NOMEM();
35+
else
36+
assert(addResult == DN_SIMDHASH_ADD_INSERTED);
3637
}
3738
return result;
3839
}

0 commit comments

Comments
 (0)