diff --git a/radio/src/cli.cpp b/radio/src/cli.cpp index bc629e20f..9cf6219eb 100644 --- a/radio/src/cli.cpp +++ b/radio/src/cli.cpp @@ -116,6 +116,7 @@ int cliLs(const char ** argv) if (res != FR_OK || fno.fname[0] == 0) break; /* Break on error or end of dir */ serialPrint(fno.fname); } + f_closedir(&dir); } else { serialPrint("%s: Invalid directory \"%s\"", argv[0], argv[1]); diff --git a/radio/src/gui/480x272/radio_sdmanager.cpp b/radio/src/gui/480x272/radio_sdmanager.cpp index ac8ae65eb..ddb3eaf3b 100644 --- a/radio/src/gui/480x272/radio_sdmanager.cpp +++ b/radio/src/gui/480x272/radio_sdmanager.cpp @@ -323,6 +323,7 @@ bool menuRadioSdManager(event_t _event) } } } + f_closedir(&dir); } } diff --git a/radio/src/gui/480x272/widgets.cpp b/radio/src/gui/480x272/widgets.cpp index 77bcc5e30..8a908db37 100644 --- a/radio/src/gui/480x272/widgets.cpp +++ b/radio/src/gui/480x272/widgets.cpp @@ -370,6 +370,7 @@ void drawSleepBitmap() const BitmapBuffer * bitmap = BitmapBuffer::load(getThemePath("sleep.bmp")); if (bitmap) { lcd->drawBitmap((LCD_W-bitmap->getWidth())/2, (LCD_H-bitmap->getHeight())/2, bitmap); + delete bitmap; } lcdRefresh(); } diff --git a/radio/src/gui/common/stdlcd/radio_sdmanager.cpp b/radio/src/gui/common/stdlcd/radio_sdmanager.cpp index e62b15948..e18d399a6 100644 --- a/radio/src/gui/common/stdlcd/radio_sdmanager.cpp +++ b/radio/src/gui/common/stdlcd/radio_sdmanager.cpp @@ -384,6 +384,7 @@ void menuRadioSdManager(event_t _event) } } } + f_closedir(&dir); } } diff --git a/radio/src/sdcard.cpp b/radio/src/sdcard.cpp index 6952edc21..9fbe46cfd 100644 --- a/radio/src/sdcard.cpp +++ b/radio/src/sdcard.cpp @@ -362,6 +362,7 @@ bool sdListFiles(const char * path, const char * extension, const uint8_t maxlen } } } + f_closedir(&dir); } if (popupMenuOffset > 0) diff --git a/radio/src/storage/eeprom_rlc.cpp b/radio/src/storage/eeprom_rlc.cpp index 97e611243..77c951ec8 100644 --- a/radio/src/storage/eeprom_rlc.cpp +++ b/radio/src/storage/eeprom_rlc.cpp @@ -678,45 +678,44 @@ void RlcFile::nextRlcWriteStep() return; } - bool run0 = (m_rlc_buf[0] == 0); + if (m_rlc_len>0) { - if (m_rlc_len==0) goto close; + bool run0 = (m_rlc_buf[0] == 0); - for (i=1; 1; i++) { // !! laeuft ein byte zu weit !! - bool cur0 = m_rlc_buf[i] == 0; - if (cur0 != run0 || cnt==0x3f || (cnt0 && cnt==0x0f) || i==m_rlc_len) { - if (run0) { - assert(cnt0==0); - if (cnt<8 && i!=m_rlc_len) - cnt0 = cnt; //aufbew fuer spaeter + for (i=1; 1; i++) { // !! laeuft ein byte zu weit !! + bool cur0 = (i