Fix Icons decompression on F6 (#856)
Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		
							parent
							
								
									9fc7fe7f32
								
							
						
					
					
						commit
						6f7d93fe72
					
				| @ -6,7 +6,7 @@ | |||||||
| 
 | 
 | ||||||
| #define TAG "FuriHalCompress" | #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_ICON_DECODED_BUFF_SIZE (1024) | ||||||
| 
 | 
 | ||||||
| #define FURI_HAL_COMPRESS_EXP_BUFF_SIZE (1 << FURI_HAL_COMPRESS_EXP_BUFF_SIZE_LOG) | #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) { |     if(header->is_compressed) { | ||||||
|         size_t data_processed = 0; |         size_t data_processed = 0; | ||||||
|         heatshrink_decoder_sink(icon_decoder->decoder, (uint8_t*)&icon_data[4], header->compressed_buff_size, &data_processed); |         heatshrink_decoder_sink(icon_decoder->decoder, (uint8_t*)&icon_data[4], header->compressed_buff_size, &data_processed); | ||||||
|         while( |         while (1) { | ||||||
|             heatshrink_decoder_poll( |             HSD_poll_res res = heatshrink_decoder_poll( | ||||||
|                 icon_decoder->decoder, |                 icon_decoder->decoder, | ||||||
|                 icon_decoder->decoded_buff, |                 icon_decoder->decoded_buff, | ||||||
|                 sizeof(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); |         heatshrink_decoder_reset(icon_decoder->decoder); | ||||||
|         memset(icon_decoder->compress_buff, 0, sizeof(icon_decoder->compress_buff)); |         memset(icon_decoder->compress_buff, 0, sizeof(icon_decoder->compress_buff)); | ||||||
|         *decoded_buff = icon_decoder->decoded_buff; |         *decoded_buff = icon_decoder->decoded_buff; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Albert Kharisov
						Albert Kharisov