aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDien-Nhung Nguyen <kein@kienlab.com>2024-09-05 22:30:40 +0700
committerGitHub <noreply@github.com>2024-09-05 17:30:40 +0200
commit68e4ce488d0a011c2e03c631b5cc0c24dff7e1f8 (patch)
tree345c990d0756e2abc0658c52d937d8df0d745550
parenta8b32e91b6f5b4df44372d942a4f514b66ceb7f5 (diff)
fix: crash loop on new chip (#45)
changes: skip reading bitmaps on invalid magic header
-rw-r--r--src/data.c3
-rw-r--r--src/main.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/data.c b/src/data.c
index eba5c70..32c1dce 100644
--- a/src/data.c
+++ b/src/data.c
@@ -43,6 +43,9 @@ uint16_t data_flash2newmem(uint8_t **chunk, uint32_t n)
{
data_legacy_t *header = data_get_header(0);
+ if (memcmp(header->header, "wang", 5))
+ return 0;
+
uint16_t size = bswap16(header->sizes[n]) * LED_ROWS;
if (size == 0)
return 0;
diff --git a/src/main.c b/src/main.c
index a7392ed..7d86220 100644
--- a/src/main.c
+++ b/src/main.c
@@ -79,6 +79,9 @@ void play_splash(xbm_t *xbm, int col, int row)
void load_bmlist()
{
+ if (data_get_header(0) == 0) // There is no bitmap stored in flash
+ return; // skip
+
bm_t *curr_bm = bmlist_current();
for (int i=0; i<8; i++) {