Fix the posix build, rect cannot intersect w/ zero size

This commit is contained in:
doylet 2025-07-30 18:54:51 +10:00
parent 31efa0cdcb
commit a8803bb539
9 changed files with 82 additions and 80 deletions

View File

@ -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<DN_Str8> 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<DN_Str8> 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<DN_Str8> 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<DN_Str8> 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<DN_Str8> 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;
}

View File

@ -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 <typename T> 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 ();

View File

@ -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)

View File

@ -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) {

View File

@ -313,7 +313,7 @@ template <typename T> 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);

View File

@ -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;
}

View File

@ -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<DN_Str8> 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<DN_Str8> 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<DN_Str8> 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<DN_Str8> 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<DN_Str8> 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;
}

View File

@ -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;
}

View File

@ -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 ();