Update lib with named bool parameters and minor fixes

This commit is contained in:
Doyle Thai 2018-02-20 00:21:00 +11:00
parent 7f2950b3dd
commit 540deb4774
3 changed files with 434 additions and 159 deletions

538
dqn.h

File diff suppressed because it is too large Load Diff

View File

@ -24,6 +24,11 @@
<DisplayString>{{numEntries={numEntries} numFreeEntries={numFreeEntries} usedEntriesIndex={usedEntriesIndex}}}</DisplayString>
</Type>
<Type Name="DqnSlice&lt;*&gt;">
<DisplayString>{len={len} data={data,[len]}}</DisplayString>
<StringView>data,s</StringView>
</Type>
<Type Name="DqnString">
<DisplayString>{{len={len}/{max} {str,s}}}</DisplayString>
<StringView>str,s</StringView>

View File

@ -1630,7 +1630,7 @@ void DqnArray_Test()
if (1)
{
DqnMemStack stack = {}; stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard);
DqnMemStack stack = {}; stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard);
DqnMemAPI memAPI = DqnMemAPI::StackAllocator(&stack);
if (1)
@ -1782,7 +1782,7 @@ void DqnFile_Test()
}
DqnMemStack memStack = {};
DQN_ASSERT(memStack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(memStack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
// Read data back in
for (u32 i = 0; i < DQN_ARRAY_COUNT(fileNames); i++)
{
@ -1845,9 +1845,9 @@ void DqnFile_Test()
{
i32 numFiles;
#if defined(DQN_UNIX_IMPLEMENTATION)
char **filelist = DqnFile::ListDir(".", numFiles);
char **filelist = DqnFile::ListDir(".", &numFiles);
#elif defined(DQN_WIN32_IMPLEMENTATION)
char **filelist = DqnFile::ListDir("*", numFiles);
char **filelist = DqnFile::ListDir("*", &numFiles);
#endif
Log("Test directory listing");
@ -1895,7 +1895,7 @@ FILE_SCOPE void DqnJobQueue_Test()
globalDebugCounter = 0;
DqnMemStack memStack = {};
DQN_ASSERT(memStack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(memStack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
u32 numThreads, numCores;
DqnPlatform_GetNumThreadsAndCores(&numCores, &numThreads);
@ -1935,7 +1935,7 @@ void DqnQuickSort_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_KILOBYTE(1), false, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_KILOBYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
// Create array of ints
u32 numInts = 1000000;
@ -2353,7 +2353,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
i32 const ALIGN64 = 64;
i32 const ALIGN16 = 16;
@ -2391,7 +2391,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::NonExpandable));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::NonExpandable));
auto *result1 = stack.Push(DQN_MEGABYTE(2));
DQN_ASSERT(result1 == nullptr);
DQN_ASSERT(stack.block->prevBlock == nullptr);
@ -2404,7 +2404,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True));
DQN_ASSERT(stack.metadata.GetBoundsGuardSize() == 0);
auto *oldBlock = stack.block;
@ -2430,7 +2430,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
DqnMemStack::Block *blockToReturnTo = stack.block;
auto headBefore = blockToReturnTo->head;
@ -2464,7 +2464,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
DqnMemStack::Block *blockToReturnTo = stack.block;
auto headBefore = blockToReturnTo->head;
@ -2499,7 +2499,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
auto *pop1 = stack.Push(222);
auto *pop2 = stack.PushOnTail(333);
@ -2550,7 +2550,7 @@ FILE_SCOPE void DqnMemStack_Test()
{
u8 memBuf[sizeof(DqnMemStack::Block) - 1] = {};
DqnMemStack stack = {};
auto result = stack.Init(&(memBuf[0]), DQN_ARRAY_COUNT(memBuf), false);
auto result = stack.Init(&(memBuf[0]), DQN_ARRAY_COUNT(memBuf), Dqn::ZeroClear::False);
DQN_ASSERT(result == false);
DQN_ASSERT(stack.block == nullptr);
@ -2563,7 +2563,7 @@ FILE_SCOPE void DqnMemStack_Test()
i32 const bufSize = sizeof(DqnMemStack::Block) * 5;
u8 memBuf[bufSize] = {};
DqnMemStack stack = {};
auto result = stack.Init(&(memBuf[0]), bufSize, false);
auto result = stack.Init(&(memBuf[0]), bufSize, Dqn::ZeroClear::False);
DQN_ASSERT(result == true);
DQN_ASSERT(stack.block);
@ -2595,7 +2595,7 @@ FILE_SCOPE void DqnMemStack_Test()
usize size = 32;
usize additionalSize = DqnMemStack::MINIMUM_BLOCK_SIZE;
DqnMemAPI heap = DqnMemAPI::HeapAllocator();
DQN_ASSERT(stack.Init(size, true, 0, &heap));
DQN_ASSERT(stack.Init(size, Dqn::ZeroClear::True, 0, &heap));
auto *block1 = stack.block;
size += additionalSize;
@ -2645,7 +2645,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
auto *result = stack.Push(64);
// TODO(doyle): check head and tail are adjacent to the bounds of the allocation
@ -2664,7 +2664,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
auto *result1 = stack.Push(100);
auto *result2 = stack.PushOnTail(100);
@ -2692,7 +2692,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
auto *result1 = stack.Push(100);
DQN_ASSERT(stack.block->prevBlock == nullptr);
@ -2723,7 +2723,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::NonExpandable));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::NonExpandable));
auto *result1 = stack.Push(100);
DQN_ASSERT(stack.block->prevBlock == nullptr);
@ -2761,7 +2761,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
auto *api = &stack.myHeadAPI;
auto *blockBefore = stack.block;
@ -2792,7 +2792,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
auto *api = &stack.myHeadAPI;
auto *blockBefore = stack.block;
@ -2811,7 +2811,7 @@ FILE_SCOPE void DqnMemStack_Test()
DQN_ASSERT(blockBefore == stack.block);
DQN_ASSERT(tailBefore > stack.block->tail);
stack.PopOnTail(buf, bufSize);
stack.PopOnTail(buf);
DQN_ASSERT(blockBefore == stack.block);
DQN_ASSERT(tailBefore == stack.block->tail);
@ -2828,7 +2828,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
auto *api = &stack.myHeadAPI;
auto *blockBefore = stack.block;
@ -2846,7 +2846,7 @@ FILE_SCOPE void DqnMemStack_Test()
DqnMem_Set(buf, '@', bufSize);
DQN_ASSERT(blockBefore == stack.block->prevBlock);
stack.Pop(buf, bufSize);
stack.Pop(buf);
DQN_ASSERT(blockBefore == stack.block);
DQN_ASSERT(headBefore == stack.block->head);
@ -2858,7 +2858,7 @@ FILE_SCOPE void DqnMemStack_Test()
if (1)
{
DqnMemStack stack = {};
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), true, DqnMemStack::Flag::BoundsGuard));
DQN_ASSERT(stack.Init(DQN_MEGABYTE(1), Dqn::ZeroClear::True, DqnMemStack::Flag::BoundsGuard));
auto *api = &stack.myHeadAPI;
auto *blockBefore = stack.block;