From a8803bb539d560809d692c498b2068914742cd74 Mon Sep 17 00:00:00 2001 From: doylet Date: Wed, 30 Jul 2025 18:54:51 +1000 Subject: [PATCH] Fix the posix build, rect cannot intersect w/ zero size --- Single_Header/dn_single_header.cpp | 69 +++++++++++++++--------------- Single_Header/dn_single_header.h | 14 +++--- Source/Base/dn_base.h | 4 +- Source/Base/dn_base_containers.cpp | 2 +- Source/Base/dn_base_containers.h | 2 +- Source/Extra/dn_math.cpp | 17 +++++--- Source/OS/dn_os_posix.cpp | 44 +++++++++---------- Source/OS/dn_os_w32.cpp | 4 +- Source/OS/dn_os_w32.h | 6 +-- 9 files changed, 82 insertions(+), 80 deletions(-) diff --git a/Single_Header/dn_single_header.cpp b/Single_Header/dn_single_header.cpp index d19c49a..8b1ac3e 100644 --- a/Single_Header/dn_single_header.cpp +++ b/Single_Header/dn_single_header.cpp @@ -1,4 +1,4 @@ -// Generated by the DN single header generator 2025-07-25 22:33:12 +// Generated by the DN single header generator 2025-07-30 18:54:02 #define DN_BASE_INC_CPP @@ -850,7 +850,7 @@ DN_API void *DN_CArray2_MakeArray(void *data, DN_USize *size, DN_USize max, DN_U return result; } -DN_API void *DN_CArray2_AddArray(void *data, DN_USize *size, DN_USize max, DN_USize data_size, void *elems, DN_USize elems_count, DN_ArrayAdd add) +DN_API void *DN_CArray2_AddArray(void *data, DN_USize *size, DN_USize max, DN_USize data_size, void const *elems, DN_USize elems_count, DN_ArrayAdd add) { void *result = DN_CArray2_MakeArray(data, size, max, data_size, elems_count, DN_ZeroMem_No); if (result) { @@ -6380,8 +6380,8 @@ DN_API void *DN_OS_MemReserve(DN_USize size, DN_MemCommit commit, DN_U32 page_fl os_page_flags |= (PROT_READ | PROT_WRITE); void *result = mmap(nullptr, size, os_page_flags, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); - DN_Atomic_AddU64(&g_dn_os_core_->mem_allocs_total, 1); - DN_Atomic_AddU64(&g_dn_os_core_->mem_allocs_frame, 1); + DN_AtomicAddU64(&g_dn_os_core_->mem_allocs_total, 1); + DN_AtomicAddU64(&g_dn_os_core_->mem_allocs_frame, 1); if (result == MAP_FAILED) result = nullptr; return result; @@ -6395,8 +6395,8 @@ DN_API bool DN_OS_MemCommit(void *ptr, DN_USize size, DN_U32 page_flags) unsigned long os_page_flags = DN_OS_MemConvertPageToOSFlags_(page_flags); result = mprotect(ptr, size, os_page_flags) == 0; - DN_Atomic_AddU64(&g_dn_os_core_->mem_allocs_total, 1); - DN_Atomic_AddU64(&g_dn_os_core_->mem_allocs_frame, 1); + DN_AtomicAddU64(&g_dn_os_core_->mem_allocs_total, 1); + DN_AtomicAddU64(&g_dn_os_core_->mem_allocs_frame, 1); return result; } @@ -6757,11 +6757,9 @@ DN_API bool DN_OS_CopyFile(DN_Str8 src, DN_Str8 dest, bool overwrite, DN_OSErrSi result = (bytes_written == stat_existing.st_size); if (!result) { int error_code = errno; - DN_OSTLSTMem tmem = DN_OS_TLSTMem(nullptr); - DN_Str8 file_size_str8 = - DN_CVT_U64ToByteSizeStr8(tmem.arena, stat_existing.st_size, DN_CVTU64ByteSizeType_Auto); - DN_Str8 bytes_written_str8 = - DN_CVT_U64ToByteSizeStr8(tmem.arena, bytes_written, DN_CVTU64ByteSizeType_Auto); + DN_OSTLSTMem tmem = DN_OS_TLSTMem(nullptr); + DN_Str8 file_size_str8 = DN_CVT_U64ToBytesStr8(tmem.arena, stat_existing.st_size, DN_CVTBytesType_Auto); + DN_Str8 bytes_written_str8 = DN_CVT_U64ToBytesStr8(tmem.arena, bytes_written, DN_CVTBytesType_Auto); DN_OS_ErrSinkAppendF(error, error_code, "Failed to copy file '%.*s' to '%.*s', we copied %.*s but the file " @@ -6991,7 +6989,7 @@ DN_API DN_OSFileRead DN_OS_FileRead(DN_OSFile *file, void *buffer, DN_USize size result.bytes_read = fread(buffer, 1, size, DN_CAST(FILE *) file->handle); if (feof(DN_CAST(FILE*)file->handle)) { DN_OSTLSTMem tmem = DN_OS_TLSTMem(nullptr); - DN_Str8 buffer_size_str8 = DN_CVT_U64ToByteSizeStr8(tmem.arena, size, DN_CVTU64ByteSizeType_Auto); + DN_Str8 buffer_size_str8 = DN_CVT_U64ToBytesStr8AutoFromTLS(size); DN_OS_ErrSinkAppendF(err, 1, "Failed to read %S from file", buffer_size_str8); return result; } @@ -7008,11 +7006,9 @@ DN_API bool DN_OS_FileWritePtr(DN_OSFile *file, void const *buffer, DN_USize siz fwrite(buffer, DN_CAST(DN_USize) size, 1 /*count*/, DN_CAST(FILE *) file->handle) == 1 /*count*/; if (!result) { - DN_OSTLSTMem tmem = DN_OS_TLSTMem(nullptr); - DN_Str8 buffer_size_str8 = - DN_CVT_U64ToByteSizeStr8(tmem.arena, size, DN_CVTU64ByteSizeType_Auto); - DN_OS_ErrSinkAppendF( - err, 1, "Failed to write buffer (%s) to file handle", DN_STR_FMT(buffer_size_str8)); + DN_OSTLSTMem tmem = DN_OS_TLSTMem(nullptr); + DN_Str8 buffer_size_str8 = DN_CVT_U64ToBytesStr8AutoFromTLS(size); + DN_OS_ErrSinkAppendF(err, 1, "Failed to write buffer (%s) to file handle", DN_STR_FMT(buffer_size_str8)); } return result; } @@ -7175,7 +7171,7 @@ DN_API DN_OSExecAsyncHandle DN_OS_ExecAsync(DN_Slice cmd_line, int stderr_pipe[DN_OSPipeType__Count] = {}; // NOTE: Open stdout pipe ////////////////////////////////////////////////////////////////////// - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_SaveStdout)) { + if (DN_BitIsSet(args->flags, DN_OSExecFlags_SaveStdout)) { if (pipe(stdout_pipe) == -1) { result.os_error_code = errno; DN_OS_ErrSinkAppendF( @@ -7199,8 +7195,8 @@ DN_API DN_OSExecAsyncHandle DN_OS_ExecAsync(DN_Slice cmd_line, }; // NOTE: Open stderr pipe ////////////////////////////////////////////////////////////////////// - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_SaveStderr)) { - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_MergeStderrToStdout)) { + if (DN_BitIsSet(args->flags, DN_OSExecFlags_SaveStderr)) { + if (DN_BitIsSet(args->flags, DN_OSExecFlags_MergeStderrToStdout)) { stderr_pipe[DN_OSPipeType__Read] = stdout_pipe[DN_OSPipeType__Read]; stderr_pipe[DN_OSPipeType__Write] = stdout_pipe[DN_OSPipeType__Write]; } else if (pipe(stderr_pipe) == -1) { @@ -7238,7 +7234,7 @@ DN_API DN_OSExecAsyncHandle DN_OS_ExecAsync(DN_Slice cmd_line, } if (child_pid == 0) { // Child process - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_SaveStdout) && + if (DN_BitIsSet(args->flags, DN_OSExecFlags_SaveStdout) && (dup2(stdout_pipe[DN_OSPipeType__Write], STDOUT_FILENO) == -1)) { result.os_error_code = errno; DN_OS_ErrSinkAppendF( @@ -7250,7 +7246,7 @@ DN_API DN_OSExecAsyncHandle DN_OS_ExecAsync(DN_Slice cmd_line, return result; } - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_SaveStderr) && + if (DN_BitIsSet(args->flags, DN_OSExecFlags_SaveStderr) && (dup2(stderr_pipe[DN_OSPipeType__Write], STDERR_FILENO) == -1)) { result.os_error_code = errno; DN_OS_ErrSinkAppendF( @@ -7330,7 +7326,7 @@ DN_API DN_OSExecAsyncHandle DN_OS_ExecAsync(DN_Slice cmd_line, &stdout_pipe[DN_OSPipeType__Write], sizeof(stdout_pipe[DN_OSPipeType__Write])); - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_SaveStderr) && DN_Bit_IsNotSet(args->flags, DN_OSExecFlags_MergeStderrToStdout)) { + if (DN_BitIsSet(args->flags, DN_OSExecFlags_SaveStderr) && DN_BitIsNotSet(args->flags, DN_OSExecFlags_MergeStderrToStdout)) { DN_Memcpy(&result.stderr_read, &stderr_pipe[DN_OSPipeType__Read], sizeof(stderr_pipe[DN_OSPipeType__Read])); @@ -7788,7 +7784,7 @@ static void DN_OS_HttpRequestEMFetchOnSuccessCallback(emscripten_fetch_t *fetch) DN_Memcpy(response->body.data, fetch->data, fetch->numBytes); DN_OS_SemaphoreIncrement(&response->on_complete_semaphore, 1); - DN_Atomic_AddU32(&response->done, 1); + DN_AtomicAddU32(&response->done, 1); } static void DN_OS_HttpRequestEMFetchOnErrorCallback(emscripten_fetch_t *fetch) @@ -7803,7 +7799,7 @@ static void DN_OS_HttpRequestEMFetchOnErrorCallback(emscripten_fetch_t *fetch) DN_Memcpy(response->body.data, fetch->data, fetch->numBytes); DN_OS_SemaphoreIncrement(&response->on_complete_semaphore, 1); - DN_Atomic_AddU32(&response->done, 1); + DN_AtomicAddU32(&response->done, 1); } #endif @@ -7843,7 +7839,7 @@ DN_API void DN_OS_HttpRequestAsync(DN_OSHttpResponse *response, "%.*s", DN_STR_FMT(response->error_msg)); response->error_code = DN_CAST(DN_U32) - 1; - DN_Atomic_AddU32(&response->done, 1); + DN_AtomicAddU32(&response->done, 1); return; } @@ -9407,7 +9403,9 @@ DN_API DN_Str16 DN_W32_ErrorCodeToMsg16Alloc(DN_U32 error_code) /*DWORD nSize */ 0, /*va_list *Arguments */ nullptr); - DN_Str16 result = {result16, size}; + DN_Str16 result = {}; + result.data = result16; + result.size = size; return result; } @@ -12795,7 +12793,7 @@ DN_API DN_M2x3 DN_M2x3_Mul(DN_M2x3 m1, DN_M2x3 m2) DN_M2x3 result = { { - m1.e[0] * m2.e[0] + m1.e[1] * m2.e[3], // a*g + b*j + c*0[omitted], + m1.e[0] * m2.e[0] + m1.e[1] * m2.e[3], // a*g + b*j + c*0[omitted], m1.e[0] * m2.e[1] + m1.e[1] * m2.e[4], // a*h + b*k + c*0[omitted], m1.e[0] * m2.e[2] + m1.e[1] * m2.e[5] + m1.e[2], // a*i + b*l + c*1, @@ -12882,12 +12880,15 @@ DN_API DN_Rect DN_Rect_ExpandV2(DN_Rect a, DN_V2F32 amount) DN_API bool DN_Rect_Intersects(DN_Rect a, DN_Rect b) { - DN_V2F32 a_min = a.pos; - DN_V2F32 a_max = a.pos + a.size; - DN_V2F32 b_min = b.pos; - DN_V2F32 b_max = b.pos + b.size; - bool result = (a_min.x <= b_max.x && a_max.x >= b_min.x) && - (a_min.y <= b_max.y && a_max.y >= b_min.y); + DN_V2F32 a_min = a.pos; + DN_V2F32 a_max = a.pos + a.size; + DN_V2F32 b_min = b.pos; + DN_V2F32 b_max = b.pos + b.size; + bool has_size = a.size.x && a.size.y && b.size.x && b.size.y; + bool result = false; + if (has_size) + result = (a_min.x <= b_max.x && a_max.x >= b_min.x) && + (a_min.y <= b_max.y && a_max.y >= b_min.y); return result; } diff --git a/Single_Header/dn_single_header.h b/Single_Header/dn_single_header.h index e829db5..9eff096 100644 --- a/Single_Header/dn_single_header.h +++ b/Single_Header/dn_single_header.h @@ -1,4 +1,4 @@ -// Generated by the DN single header generator 2025-07-25 22:33:12 +// Generated by the DN single header generator 2025-07-30 18:54:02 #if !defined(DN_BASE_INC_H) #define DN_BASE_INC_H @@ -496,9 +496,9 @@ struct DN_CallSite #define DN_CountLeadingZerosU32(value) __builtin_clzl(value) #if defined(DN_COMPILER_GCC) - #define DN_CPUTSC() __rdtsc() + #define DN_CPUGetTSC() __rdtsc() #else - #define DN_CPUTSC() __builtin_readcyclecounter() + #define DN_CPUGetTSC() __builtin_readcyclecounter() #endif #if defined(DN_PLATFORM_EMSCRIPTEN) @@ -3895,7 +3895,7 @@ template struct DN_List DN_API DN_ArrayEraseResult DN_CArray2_EraseRange (void *data, DN_USize *size, DN_USize elem_size, DN_USize begin_index, DN_ISize count, DN_ArrayErase erase); DN_API void *DN_CArray2_MakeArray (void *data, DN_USize *size, DN_USize max, DN_USize data_size, DN_USize make_size, DN_ZeroMem zero_mem); -DN_API void *DN_CArray2_AddArray (void *data, DN_USize *size, DN_USize max, DN_USize data_size, void *elems, DN_USize elems_count, DN_ArrayAdd add); +DN_API void *DN_CArray2_AddArray (void *data, DN_USize *size, DN_USize max, DN_USize data_size, void const *elems, DN_USize elems_count, DN_ArrayAdd add); DN_API bool DN_CArray2_Resize (void **data, DN_USize *size, DN_USize *max, DN_USize data_size, DN_Pool *pool, DN_USize new_max); DN_API bool DN_CArray2_Grow (void **data, DN_USize *size, DN_USize *max, DN_USize data_size, DN_Pool *pool, DN_USize new_max); DN_API bool DN_CArray2_GrowIfNeededFromPool (void **data, DN_USize size, DN_USize *max, DN_USize data_size, DN_Pool *pool); @@ -5518,9 +5518,9 @@ struct DN_W32Core DN_API void DN_W32_ThreadSetName (DN_Str8 name); -DN_API DN_Str16 DN_W32_ErrorCodeToMsg16Alloc(uint32_t error_code); -DN_API DN_W32Error DN_W32_ErrorCodeToMsg (DN_Arena *arena, uint32_t error_code); -DN_API DN_W32Error DN_W32_ErrorCodeToMsgAlloc (uint32_t error_code); +DN_API DN_Str16 DN_W32_ErrorCodeToMsg16Alloc(DN_U32 error_code); +DN_API DN_W32Error DN_W32_ErrorCodeToMsg (DN_Arena *arena, DN_U32 error_code); +DN_API DN_W32Error DN_W32_ErrorCodeToMsgAlloc (DN_U32 error_code); DN_API DN_W32Error DN_W32_LastError (DN_Arena *arena); DN_API DN_W32Error DN_W32_LastErrorAlloc (); DN_API void DN_W32_MakeProcessDPIAware (); diff --git a/Source/Base/dn_base.h b/Source/Base/dn_base.h index 6be4a47..e5ad087 100644 --- a/Source/Base/dn_base.h +++ b/Source/Base/dn_base.h @@ -278,9 +278,9 @@ struct DN_CallSite #define DN_CountLeadingZerosU32(value) __builtin_clzl(value) #if defined(DN_COMPILER_GCC) - #define DN_CPUTSC() __rdtsc() + #define DN_CPUGetTSC() __rdtsc() #else - #define DN_CPUTSC() __builtin_readcyclecounter() + #define DN_CPUGetTSC() __builtin_readcyclecounter() #endif #if defined(DN_PLATFORM_EMSCRIPTEN) diff --git a/Source/Base/dn_base_containers.cpp b/Source/Base/dn_base_containers.cpp index 5bf1c4f..ee8a5a7 100644 --- a/Source/Base/dn_base_containers.cpp +++ b/Source/Base/dn_base_containers.cpp @@ -80,7 +80,7 @@ DN_API void *DN_CArray2_MakeArray(void *data, DN_USize *size, DN_USize max, DN_U return result; } -DN_API void *DN_CArray2_AddArray(void *data, DN_USize *size, DN_USize max, DN_USize data_size, void *elems, DN_USize elems_count, DN_ArrayAdd add) +DN_API void *DN_CArray2_AddArray(void *data, DN_USize *size, DN_USize max, DN_USize data_size, void const *elems, DN_USize elems_count, DN_ArrayAdd add) { void *result = DN_CArray2_MakeArray(data, size, max, data_size, elems_count, DN_ZeroMem_No); if (result) { diff --git a/Source/Base/dn_base_containers.h b/Source/Base/dn_base_containers.h index 39b6422..8c3c15d 100644 --- a/Source/Base/dn_base_containers.h +++ b/Source/Base/dn_base_containers.h @@ -313,7 +313,7 @@ template struct DN_List DN_API DN_ArrayEraseResult DN_CArray2_EraseRange (void *data, DN_USize *size, DN_USize elem_size, DN_USize begin_index, DN_ISize count, DN_ArrayErase erase); DN_API void *DN_CArray2_MakeArray (void *data, DN_USize *size, DN_USize max, DN_USize data_size, DN_USize make_size, DN_ZeroMem zero_mem); -DN_API void *DN_CArray2_AddArray (void *data, DN_USize *size, DN_USize max, DN_USize data_size, void *elems, DN_USize elems_count, DN_ArrayAdd add); +DN_API void *DN_CArray2_AddArray (void *data, DN_USize *size, DN_USize max, DN_USize data_size, void const *elems, DN_USize elems_count, DN_ArrayAdd add); DN_API bool DN_CArray2_Resize (void **data, DN_USize *size, DN_USize *max, DN_USize data_size, DN_Pool *pool, DN_USize new_max); DN_API bool DN_CArray2_Grow (void **data, DN_USize *size, DN_USize *max, DN_USize data_size, DN_Pool *pool, DN_USize new_max); DN_API bool DN_CArray2_GrowIfNeededFromPool (void **data, DN_USize size, DN_USize *max, DN_USize data_size, DN_Pool *pool); diff --git a/Source/Extra/dn_math.cpp b/Source/Extra/dn_math.cpp index e51c6ec..2f8ef26 100644 --- a/Source/Extra/dn_math.cpp +++ b/Source/Extra/dn_math.cpp @@ -1294,7 +1294,7 @@ DN_API DN_M2x3 DN_M2x3_Mul(DN_M2x3 m1, DN_M2x3 m2) DN_M2x3 result = { { - m1.e[0] * m2.e[0] + m1.e[1] * m2.e[3], // a*g + b*j + c*0[omitted], + m1.e[0] * m2.e[0] + m1.e[1] * m2.e[3], // a*g + b*j + c*0[omitted], m1.e[0] * m2.e[1] + m1.e[1] * m2.e[4], // a*h + b*k + c*0[omitted], m1.e[0] * m2.e[2] + m1.e[1] * m2.e[5] + m1.e[2], // a*i + b*l + c*1, @@ -1381,12 +1381,15 @@ DN_API DN_Rect DN_Rect_ExpandV2(DN_Rect a, DN_V2F32 amount) DN_API bool DN_Rect_Intersects(DN_Rect a, DN_Rect b) { - DN_V2F32 a_min = a.pos; - DN_V2F32 a_max = a.pos + a.size; - DN_V2F32 b_min = b.pos; - DN_V2F32 b_max = b.pos + b.size; - bool result = (a_min.x <= b_max.x && a_max.x >= b_min.x) && - (a_min.y <= b_max.y && a_max.y >= b_min.y); + DN_V2F32 a_min = a.pos; + DN_V2F32 a_max = a.pos + a.size; + DN_V2F32 b_min = b.pos; + DN_V2F32 b_max = b.pos + b.size; + bool has_size = a.size.x && a.size.y && b.size.x && b.size.y; + bool result = false; + if (has_size) + result = (a_min.x <= b_max.x && a_max.x >= b_min.x) && + (a_min.y <= b_max.y && a_max.y >= b_min.y); return result; } diff --git a/Source/OS/dn_os_posix.cpp b/Source/OS/dn_os_posix.cpp index a78a593..966760e 100644 --- a/Source/OS/dn_os_posix.cpp +++ b/Source/OS/dn_os_posix.cpp @@ -29,8 +29,8 @@ DN_API void *DN_OS_MemReserve(DN_USize size, DN_MemCommit commit, DN_U32 page_fl os_page_flags |= (PROT_READ | PROT_WRITE); void *result = mmap(nullptr, size, os_page_flags, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); - DN_Atomic_AddU64(&g_dn_os_core_->mem_allocs_total, 1); - DN_Atomic_AddU64(&g_dn_os_core_->mem_allocs_frame, 1); + DN_AtomicAddU64(&g_dn_os_core_->mem_allocs_total, 1); + DN_AtomicAddU64(&g_dn_os_core_->mem_allocs_frame, 1); if (result == MAP_FAILED) result = nullptr; return result; @@ -44,8 +44,8 @@ DN_API bool DN_OS_MemCommit(void *ptr, DN_USize size, DN_U32 page_flags) unsigned long os_page_flags = DN_OS_MemConvertPageToOSFlags_(page_flags); result = mprotect(ptr, size, os_page_flags) == 0; - DN_Atomic_AddU64(&g_dn_os_core_->mem_allocs_total, 1); - DN_Atomic_AddU64(&g_dn_os_core_->mem_allocs_frame, 1); + DN_AtomicAddU64(&g_dn_os_core_->mem_allocs_total, 1); + DN_AtomicAddU64(&g_dn_os_core_->mem_allocs_frame, 1); return result; } @@ -406,11 +406,9 @@ DN_API bool DN_OS_CopyFile(DN_Str8 src, DN_Str8 dest, bool overwrite, DN_OSErrSi result = (bytes_written == stat_existing.st_size); if (!result) { int error_code = errno; - DN_OSTLSTMem tmem = DN_OS_TLSTMem(nullptr); - DN_Str8 file_size_str8 = - DN_CVT_U64ToByteSizeStr8(tmem.arena, stat_existing.st_size, DN_CVTU64ByteSizeType_Auto); - DN_Str8 bytes_written_str8 = - DN_CVT_U64ToByteSizeStr8(tmem.arena, bytes_written, DN_CVTU64ByteSizeType_Auto); + DN_OSTLSTMem tmem = DN_OS_TLSTMem(nullptr); + DN_Str8 file_size_str8 = DN_CVT_U64ToBytesStr8(tmem.arena, stat_existing.st_size, DN_CVTBytesType_Auto); + DN_Str8 bytes_written_str8 = DN_CVT_U64ToBytesStr8(tmem.arena, bytes_written, DN_CVTBytesType_Auto); DN_OS_ErrSinkAppendF(error, error_code, "Failed to copy file '%.*s' to '%.*s', we copied %.*s but the file " @@ -640,7 +638,7 @@ DN_API DN_OSFileRead DN_OS_FileRead(DN_OSFile *file, void *buffer, DN_USize size result.bytes_read = fread(buffer, 1, size, DN_CAST(FILE *) file->handle); if (feof(DN_CAST(FILE*)file->handle)) { DN_OSTLSTMem tmem = DN_OS_TLSTMem(nullptr); - DN_Str8 buffer_size_str8 = DN_CVT_U64ToByteSizeStr8(tmem.arena, size, DN_CVTU64ByteSizeType_Auto); + DN_Str8 buffer_size_str8 = DN_CVT_U64ToBytesStr8AutoFromTLS(size); DN_OS_ErrSinkAppendF(err, 1, "Failed to read %S from file", buffer_size_str8); return result; } @@ -657,11 +655,9 @@ DN_API bool DN_OS_FileWritePtr(DN_OSFile *file, void const *buffer, DN_USize siz fwrite(buffer, DN_CAST(DN_USize) size, 1 /*count*/, DN_CAST(FILE *) file->handle) == 1 /*count*/; if (!result) { - DN_OSTLSTMem tmem = DN_OS_TLSTMem(nullptr); - DN_Str8 buffer_size_str8 = - DN_CVT_U64ToByteSizeStr8(tmem.arena, size, DN_CVTU64ByteSizeType_Auto); - DN_OS_ErrSinkAppendF( - err, 1, "Failed to write buffer (%s) to file handle", DN_STR_FMT(buffer_size_str8)); + DN_OSTLSTMem tmem = DN_OS_TLSTMem(nullptr); + DN_Str8 buffer_size_str8 = DN_CVT_U64ToBytesStr8AutoFromTLS(size); + DN_OS_ErrSinkAppendF(err, 1, "Failed to write buffer (%s) to file handle", DN_STR_FMT(buffer_size_str8)); } return result; } @@ -824,7 +820,7 @@ DN_API DN_OSExecAsyncHandle DN_OS_ExecAsync(DN_Slice cmd_line, int stderr_pipe[DN_OSPipeType__Count] = {}; // NOTE: Open stdout pipe ////////////////////////////////////////////////////////////////////// - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_SaveStdout)) { + if (DN_BitIsSet(args->flags, DN_OSExecFlags_SaveStdout)) { if (pipe(stdout_pipe) == -1) { result.os_error_code = errno; DN_OS_ErrSinkAppendF( @@ -848,8 +844,8 @@ DN_API DN_OSExecAsyncHandle DN_OS_ExecAsync(DN_Slice cmd_line, }; // NOTE: Open stderr pipe ////////////////////////////////////////////////////////////////////// - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_SaveStderr)) { - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_MergeStderrToStdout)) { + if (DN_BitIsSet(args->flags, DN_OSExecFlags_SaveStderr)) { + if (DN_BitIsSet(args->flags, DN_OSExecFlags_MergeStderrToStdout)) { stderr_pipe[DN_OSPipeType__Read] = stdout_pipe[DN_OSPipeType__Read]; stderr_pipe[DN_OSPipeType__Write] = stdout_pipe[DN_OSPipeType__Write]; } else if (pipe(stderr_pipe) == -1) { @@ -887,7 +883,7 @@ DN_API DN_OSExecAsyncHandle DN_OS_ExecAsync(DN_Slice cmd_line, } if (child_pid == 0) { // Child process - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_SaveStdout) && + if (DN_BitIsSet(args->flags, DN_OSExecFlags_SaveStdout) && (dup2(stdout_pipe[DN_OSPipeType__Write], STDOUT_FILENO) == -1)) { result.os_error_code = errno; DN_OS_ErrSinkAppendF( @@ -899,7 +895,7 @@ DN_API DN_OSExecAsyncHandle DN_OS_ExecAsync(DN_Slice cmd_line, return result; } - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_SaveStderr) && + if (DN_BitIsSet(args->flags, DN_OSExecFlags_SaveStderr) && (dup2(stderr_pipe[DN_OSPipeType__Write], STDERR_FILENO) == -1)) { result.os_error_code = errno; DN_OS_ErrSinkAppendF( @@ -979,7 +975,7 @@ DN_API DN_OSExecAsyncHandle DN_OS_ExecAsync(DN_Slice cmd_line, &stdout_pipe[DN_OSPipeType__Write], sizeof(stdout_pipe[DN_OSPipeType__Write])); - if (DN_Bit_IsSet(args->flags, DN_OSExecFlags_SaveStderr) && DN_Bit_IsNotSet(args->flags, DN_OSExecFlags_MergeStderrToStdout)) { + if (DN_BitIsSet(args->flags, DN_OSExecFlags_SaveStderr) && DN_BitIsNotSet(args->flags, DN_OSExecFlags_MergeStderrToStdout)) { DN_Memcpy(&result.stderr_read, &stderr_pipe[DN_OSPipeType__Read], sizeof(stderr_pipe[DN_OSPipeType__Read])); @@ -1437,7 +1433,7 @@ static void DN_OS_HttpRequestEMFetchOnSuccessCallback(emscripten_fetch_t *fetch) DN_Memcpy(response->body.data, fetch->data, fetch->numBytes); DN_OS_SemaphoreIncrement(&response->on_complete_semaphore, 1); - DN_Atomic_AddU32(&response->done, 1); + DN_AtomicAddU32(&response->done, 1); } static void DN_OS_HttpRequestEMFetchOnErrorCallback(emscripten_fetch_t *fetch) @@ -1452,7 +1448,7 @@ static void DN_OS_HttpRequestEMFetchOnErrorCallback(emscripten_fetch_t *fetch) DN_Memcpy(response->body.data, fetch->data, fetch->numBytes); DN_OS_SemaphoreIncrement(&response->on_complete_semaphore, 1); - DN_Atomic_AddU32(&response->done, 1); + DN_AtomicAddU32(&response->done, 1); } #endif @@ -1492,7 +1488,7 @@ DN_API void DN_OS_HttpRequestAsync(DN_OSHttpResponse *response, "%.*s", DN_STR_FMT(response->error_msg)); response->error_code = DN_CAST(DN_U32) - 1; - DN_Atomic_AddU32(&response->done, 1); + DN_AtomicAddU32(&response->done, 1); return; } diff --git a/Source/OS/dn_os_w32.cpp b/Source/OS/dn_os_w32.cpp index 1678bbe..ea6e858 100644 --- a/Source/OS/dn_os_w32.cpp +++ b/Source/OS/dn_os_w32.cpp @@ -1521,7 +1521,9 @@ DN_API DN_Str16 DN_W32_ErrorCodeToMsg16Alloc(DN_U32 error_code) /*DWORD nSize */ 0, /*va_list *Arguments */ nullptr); - DN_Str16 result = {result16, size}; + DN_Str16 result = {}; + result.data = result16; + result.size = size; return result; } diff --git a/Source/OS/dn_os_w32.h b/Source/OS/dn_os_w32.h index d3ef20c..0dbb3e7 100644 --- a/Source/OS/dn_os_w32.h +++ b/Source/OS/dn_os_w32.h @@ -48,9 +48,9 @@ struct DN_W32Core DN_API void DN_W32_ThreadSetName (DN_Str8 name); -DN_API DN_Str16 DN_W32_ErrorCodeToMsg16Alloc(uint32_t error_code); -DN_API DN_W32Error DN_W32_ErrorCodeToMsg (DN_Arena *arena, uint32_t error_code); -DN_API DN_W32Error DN_W32_ErrorCodeToMsgAlloc (uint32_t error_code); +DN_API DN_Str16 DN_W32_ErrorCodeToMsg16Alloc(DN_U32 error_code); +DN_API DN_W32Error DN_W32_ErrorCodeToMsg (DN_Arena *arena, DN_U32 error_code); +DN_API DN_W32Error DN_W32_ErrorCodeToMsgAlloc (DN_U32 error_code); DN_API DN_W32Error DN_W32_LastError (DN_Arena *arena); DN_API DN_W32Error DN_W32_LastErrorAlloc (); DN_API void DN_W32_MakeProcessDPIAware ();