From 3f5d67e7fa9db3252428b6b3b6b99b751919b3da Mon Sep 17 00:00:00 2001 From: Calvin Huang Date: Mon, 13 May 2024 20:15:17 -0700 Subject: [PATCH 1/2] account for increased size of desc->head --- src/mini_qoi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mini_qoi.c b/src/mini_qoi.c index 71ad756..85dd69c 100644 --- a/src/mini_qoi.c +++ b/src/mini_qoi.c @@ -44,6 +44,7 @@ Initializes an mQOI image descriptor object. */ void mqoi_desc_init(mqoi_desc_t * desc) { memset(desc, 0, sizeof(mqoi_desc_t)); + desc->head = 3; } /* @@ -90,7 +91,7 @@ uint8_t mqoi_desc_verify(mqoi_desc_t * desc, uint32_t * w, uint32_t * h) { Returns true when the mQOI image descriptor object is completely populated. */ MQOI_INLINE bool mqoi_desc_done(const mqoi_desc_t * desc) { - return desc->head >= sizeof(mqoi_desc_t) - 1; + return desc->head >= sizeof(mqoi_desc_t) - 4; } // ==== mqoi_dec_t ==== From f6f2a2f75ae2bcbcce983866e5c3a344e53fda64 Mon Sep 17 00:00:00 2001 From: Calvin Huang Date: Mon, 13 May 2024 20:16:50 -0700 Subject: [PATCH 2/2] change mqoi_desc_t head to be uint32_t so following fields are aligned when interpreting as uint32_t --- src/mini_qoi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mini_qoi.h b/src/mini_qoi.h index 0ff27b0..d24f16d 100644 --- a/src/mini_qoi.h +++ b/src/mini_qoi.h @@ -61,7 +61,7 @@ typedef union { } mqoi_rgba_t; typedef struct { - uint8_t head; + uint32_t head; uint8_t magic[4]; uint8_t width[4]; // big-endian width