Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Kharisov <albkharisov@gmail.com>2021-11-30 20:53:46 +0300
committerGitHub <noreply@github.com>2021-11-30 20:53:46 +0300
commit6f7d93fe724719a16e1315832c7ef69aabedd1ef (patch)
tree5674f6043b7159bba7e5799e330ea43d65166b6b /firmware
parent9fc7fe7f322a6f7e9863ff214f8b781285625f64 (diff)
Fix Icons decompression on F6 (#856)
Co-authored-by: あく <alleteam@gmail.com>
Diffstat (limited to 'firmware')
-rw-r--r--firmware/targets/f6/furi-hal/furi-hal-compress.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/firmware/targets/f6/furi-hal/furi-hal-compress.c b/firmware/targets/f6/furi-hal/furi-hal-compress.c
index eb6e9d51..369ab3a0 100644
--- a/firmware/targets/f6/furi-hal/furi-hal-compress.c
+++ b/firmware/targets/f6/furi-hal/furi-hal-compress.c
@@ -6,7 +6,7 @@
#define TAG "FuriHalCompress"
-#define FURI_HAL_COMPRESS_ICON_ENCODED_BUFF_SIZE (512)
+#define FURI_HAL_COMPRESS_ICON_ENCODED_BUFF_SIZE (2*512)
#define FURI_HAL_COMPRESS_ICON_DECODED_BUFF_SIZE (1024)
#define FURI_HAL_COMPRESS_EXP_BUFF_SIZE (1 << FURI_HAL_COMPRESS_EXP_BUFF_SIZE_LOG)
@@ -59,13 +59,17 @@ void furi_hal_compress_icon_decode(const uint8_t* icon_data, uint8_t** decoded_b
if(header->is_compressed) {
size_t data_processed = 0;
heatshrink_decoder_sink(icon_decoder->decoder, (uint8_t*)&icon_data[4], header->compressed_buff_size, &data_processed);
- while(
- heatshrink_decoder_poll(
+ while (1) {
+ HSD_poll_res res = heatshrink_decoder_poll(
icon_decoder->decoder,
icon_decoder->decoded_buff,
sizeof(icon_decoder->decoded_buff),
- &data_processed) == HSDR_POLL_MORE
- ) {};
+ &data_processed);
+ furi_assert((res == HSDR_POLL_EMPTY) || (res == HSDR_POLL_MORE));
+ if (res != HSDR_POLL_MORE) {
+ break;
+ }
+ }
heatshrink_decoder_reset(icon_decoder->decoder);
memset(icon_decoder->compress_buff, 0, sizeof(icon_decoder->compress_buff));
*decoded_buff = icon_decoder->decoded_buff;