From acd6667d4593ca8a5b10fba1669f27b4a35871b7 Mon Sep 17 00:00:00 2001 From: Bas Stottelaar Date: Sun, 15 Feb 2026 13:42:03 +0100 Subject: [PATCH] fix: use memcpy to prevent memory alignment error --- sys/sdl/common/u8x8_d_sdl_128x64.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sys/sdl/common/u8x8_d_sdl_128x64.c b/sys/sdl/common/u8x8_d_sdl_128x64.c index 0af4e8fa..18b854cd 100644 --- a/sys/sdl/common/u8x8_d_sdl_128x64.c +++ b/sys/sdl/common/u8x8_d_sdl_128x64.c @@ -8,6 +8,7 @@ #endif #include #include +#include //#define HEIGHT (64) //#define WIDTH 128 @@ -36,7 +37,7 @@ int u8g_sdl_height, u8g_sdl_width; static void u8g_sdl_set_pixel(int x, int y, int idx) { - uint32_t *ptr; + uint8_t *ptr; uint32_t offset; int i, j; @@ -59,8 +60,8 @@ static void u8g_sdl_set_pixel(int x, int y, int idx) assert( offset < (Uint32)(u8g_sdl_width * u8g_sdl_multiple * u8g_sdl_height * u8g_sdl_multiple * u8g_sdl_screen->format->BytesPerPixel) ); - ptr = (uint32_t *)(((uint8_t *)(u8g_sdl_screen->pixels)) + offset); - *ptr = u8g_sdl_color[idx]; + ptr = ((uint8_t *)(u8g_sdl_screen->pixels)) + offset; + memcpy(ptr, &u8g_sdl_color[idx], sizeof(u8g_sdl_color[idx])); #endif } }