diff options
Diffstat (limited to 'src/util')
| -rw-r--r-- | src/util/buffer.c | 11 | ||||
| -rw-r--r-- | src/util/packet.c | 10 | ||||
| -rw-r--r-- | src/util/packet.h | 3 | ||||
| -rw-r--r-- | src/util/thread/thread.h | 2 | ||||
| -rw-r--r-- | src/util/thread/thread_linux.c | 6 | ||||
| -rw-r--r-- | src/util/thread/thread_windows.c | 8 | ||||
| -rw-r--r-- | src/util/timer/timer_windows.c | 4 |
7 files changed, 22 insertions, 22 deletions
diff --git a/src/util/buffer.c b/src/util/buffer.c index 4f184b9..32a8230 100644 --- a/src/util/buffer.c +++ b/src/util/buffer.c @@ -1,13 +1,14 @@ #include "buffer.h" -#define INITIAL_SIZE 128 +#define BUFFER_INITIAL_SIZE 128 void aki_buffer_ensure_space(struct aki_buffer *buf, size_t size) { - if (buf->alloc >= size) return; - if (size < INITIAL_SIZE) buf->alloc = INITIAL_SIZE; - else buf->alloc = al_next_power_of_two(size); - buf->data = buf->data ? al_realloc(buf->data, buf->alloc) : al_malloc(buf->alloc); + if (size > buf->alloc) { + if (size < BUFFER_INITIAL_SIZE) buf->alloc = BUFFER_INITIAL_SIZE; + else buf->alloc = al_next_power_of_two(size); + buf->data = buf->data ? al_realloc(buf->data, buf->alloc) : al_malloc(buf->alloc); + } } void aki_buffer_init(struct aki_buffer *buf) diff --git a/src/util/packet.c b/src/util/packet.c index 373a3a3..ae36fcd 100644 --- a/src/util/packet.c +++ b/src/util/packet.c @@ -60,7 +60,8 @@ void aki_packet_write_str(struct aki_packet *packet, str *s) void aki_packet_write_buffer(struct aki_packet *packet, struct aki_buffer *buf) { - AKI_PACKET_WRITE_TYPE(packet, size_t, buf->size); + u64 size = (u64)buf->size; + AKI_PACKET_WRITE_TYPE(packet, u64, size); AKI_PACKET_WRITE_DATA(packet, aki_buffer_get_ptr(buf, 0), buf->size); } @@ -92,12 +93,14 @@ void aki_packet_read_str(struct aki_packet *packet, str *s) void aki_packet_read_buffer(struct aki_packet *packet, struct aki_buffer *buf) { - AKI_PACKET_READ_TYPE(packet, size_t, buf->size); + u64 size; + AKI_PACKET_READ_TYPE(packet, u64, size); + al_assert((sizeof(size_t) > 4 || size <= INT32_MAX)); + buf->size = (size_t)size; AKI_PACKET_READ_DATA(packet, buf->size, buf->data); buf->alloc = 0; } -#ifdef AL_HAVE_WIDE_STRING void aki_packet_write_wstr(struct aki_packet *packet, wstr *w) { AKI_PACKET_WRITE_TYPE(packet, u32, w->len); @@ -110,7 +113,6 @@ void aki_packet_read_wstr(struct aki_packet *packet, wstr *w) AKI_PACKET_READ_DATA(packet, w->len * sizeof(wchar_t), w->data); w->alloc = 0; } -#endif void aki_packet_free(struct aki_packet *packet) { diff --git a/src/util/packet.h b/src/util/packet.h index cacd82c..4f5b28c 100644 --- a/src/util/packet.h +++ b/src/util/packet.h @@ -13,7 +13,6 @@ struct aki_packet { struct aki_buffer buffer; u32 rindex; u32 windex; - void *userdata; }; #define AKI_PACKET_GET_ID(p) \ @@ -68,9 +67,7 @@ f64 aki_packet_read_f64(struct aki_packet *packet); void aki_packet_read_str(struct aki_packet *packet, str *s); void aki_packet_read_buffer(struct aki_packet *packet, struct aki_buffer *buf); -#ifdef AL_HAVE_WIDE_STRING void aki_packet_write_wstr(struct aki_packet *packet, wstr *w); void aki_packet_read_wstr(struct aki_packet *packet, wstr *w); -#endif void aki_packet_free(struct aki_packet *packet); diff --git a/src/util/thread/thread.h b/src/util/thread/thread.h index 8860d2d..6a04647 100644 --- a/src/util/thread/thread.h +++ b/src/util/thread/thread.h @@ -47,7 +47,7 @@ typedef unsigned long aki_thread_result; typedef aki_thread_result (AKI_THREADCALL * aki_thread_func)(void *); -void aki_thread_sleep(aki_os_tstamp ts); +void aki_thread_sleep(aki_os_tstamp delay); void aki_thread_create(struct aki_thread *thread, aki_thread_func func, void *userdata); void aki_thread_join(struct aki_thread *thread); diff --git a/src/util/thread/thread_linux.c b/src/util/thread/thread_linux.c index e1d694c..6df84e9 100644 --- a/src/util/thread/thread_linux.c +++ b/src/util/thread/thread_linux.c @@ -4,11 +4,11 @@ #include "thread.h" -void aki_thread_sleep(aki_os_tstamp ts) +void aki_thread_sleep(aki_os_tstamp delay) { struct timespec tv; - tv.tv_sec = (s64)ts; - tv.tv_nsec = (s64)((ts - tv.tv_sec) * 1e9); + tv.tv_sec = (s64)delay; + tv.tv_nsec = (s64)((delay - tv.tv_sec) * 1e9); while (nanosleep(&tv, &tv) == -1 && errno == EINTR) {} } diff --git a/src/util/thread/thread_windows.c b/src/util/thread/thread_windows.c index 9ea9ead..a58e1b1 100644 --- a/src/util/thread/thread_windows.c +++ b/src/util/thread/thread_windows.c @@ -2,11 +2,11 @@ NTSTATUS(__stdcall *NtDelayExecution)(BOOL Alertable, PLARGE_INTEGER DelayInterval); -void aki_thread_sleep(aki_os_tstamp ts) +void aki_thread_sleep(aki_os_tstamp delay) { - LARGE_INTEGER intr; - intr.QuadPart = -1 * (s64)(ts * 1e7); - NtDelayExecution(false, &intr); + LARGE_INTEGER li; + li.QuadPart = -(s64)(delay * 1e7L); + NtDelayExecution(false, &li); } void aki_thread_create(struct aki_thread *thread, aki_thread_func func, void *userdata) diff --git a/src/util/timer/timer_windows.c b/src/util/timer/timer_windows.c index 37a8fd8..007efed 100644 --- a/src/util/timer/timer_windows.c +++ b/src/util/timer/timer_windows.c @@ -8,7 +8,7 @@ f64 aki_get_tick(void) { LARGE_INTEGER result; QueryPerformanceCounter(&result); - return (result.QuadPart/(f64)performance_frequency.QuadPart); + return result.QuadPart / (f64)performance_frequency.QuadPart; } static SYSTEMTIME unix_epoch = { @@ -35,5 +35,5 @@ u64 aki_get_timestamp(void) .LowPart = result1.dwLowDateTime, .HighPart = result1.dwHighDateTime }; - return (li1.QuadPart - li0.QuadPart) / 10; + return (li1.QuadPart - li0.QuadPart) / 10L; } |