See issue #992 and pull request #993.
@ -1378,6 +1378,8 @@ void *stbds_hmput_key(void *a, size_t elemsize, void *key, size_t keysize, int m
if (bucket->hash[i] == hash) {
if (stbds_is_key_equal(raw_a, elemsize, key, keysize, keyoffset, mode, bucket->index[i])) {
stbds_temp(a) = bucket->index[i];
if (mode >= STBDS_HM_STRING)
stbds_temp_key(a) = * (char **) ((char *) raw_a + elemsize*bucket->index[i] + keyoffset);
return STBDS_ARR_TO_HASH(a,elemsize);
}
} else if (bucket->hash[i] == 0) {