{
char *data = UDPC_Deque_index_ptr(
hm->buckets[x], 4 + hm->unitSize, y);
- fn(userData, data + 4);
+ if(hm->unitSize > 0) { fn(userData, data + 4); }
+ else { fn(userData, data); }
}
}
for(int x = 0; x * (4 + hm->unitSize) < hm->overflow->size; ++x)
{
char *data = UDPC_Deque_index_ptr(
hm->overflow, 4 + hm->unitSize, x);
- fn(userData, data + 4);
+ if(hm->unitSize > 0) { fn(userData, data + 4); }
+ else { fn(userData, data); }
}
}
UNITTEST_REPORT(ATOSTR);
}
+void TEST_HASHMAP_itercall_comp(void *unused, char *data)
+{
+ int temp = *((int*)(data)) / 100;
+ ASSERT_EQ_MEM(&temp, data - 4, 4);
+}
+
void TEST_HASHMAP()
{
UDPC_HashMap *hm = UDPC_HashMap_init(0, sizeof(int));
ASSERT_EQ_MEM(UDPC_HashMap_get(hm, x), &temp, sizeof(int));
}
+ UDPC_HashMap_itercall(hm, TEST_HASHMAP_itercall_comp, NULL);
+
// TODO DEBUG
/*
printf("Size = %d\n", hm->size);