Fix the posix build, rect cannot intersect w/ zero size
This commit is contained in:
parent
31efa0cdcb
commit
a8803bb539
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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 ();
|
||||
|
@ -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)
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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 ();
|
||||
|
Loading…
x
Reference in New Issue
Block a user