Skip to content

Commit

Permalink
🩹 Bail on 'mc.zip' write error (MarlinFirmware#25695)
Browse files Browse the repository at this point in the history
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
  • Loading branch information
2 people authored and SMHRambo committed Jul 17, 2023
1 parent e139e92 commit 55191ec
Show file tree
Hide file tree
Showing 6 changed files with 6 additions and 15 deletions.
2 changes: 1 addition & 1 deletion Marlin/src/gcode/eeprom/M500-M504.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ void GcodeSuite::M502() {
bool success = true;
for (uint16_t i = 0; success && i < sizeof(mc_zip); ++i) {
const uint8_t c = pgm_read_byte(&mc_zip[i]);
file.write(c);
success = (file.write(c) == 1);
}
success = file.close() && success;

Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/sd/SdBaseFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2168,7 +2168,7 @@ bool SdBaseFile::truncate(uint32_t length) {
* include write() is called before a file has been opened, write is called
* for a read-only file, device is full, a corrupt file system or an I/O error.
*/
int16_t SdBaseFile::write(const void *buf, uint16_t nbyte) {
int16_t SdBaseFile::write(const void *buf, const uint16_t nbyte) {
#if ENABLED(SDCARD_READONLY)
writeError = true; return -1;
#endif
Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/sd/SdBaseFile.h
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ class SdBaseFile {
* \return SdVolume that contains this file.
*/
SdVolume* volume() const { return vol_; }
int16_t write(const void *buf, uint16_t nbyte);
int16_t write(const void *buf, const uint16_t nbyte);

private:
friend class SdFat; // allow SdFat to set cwd_
Expand Down
6 changes: 1 addition & 5 deletions Marlin/src/sd/SdFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,7 @@ int16_t SdFile::write(const void * const buf, const uint16_t nbyte) { return SdB
* \param[in] b the byte to be written.
* Use writeError to check for errors.
*/
#if ARDUINO >= 100
size_t SdFile::write(const uint8_t b) { return SdBaseFile::write(&b, 1); }
#else
void SdFile::write(const uint8_t b) { SdBaseFile::write(&b, 1); }
#endif
size_t SdFile::write(const uint8_t b) { return SdBaseFile::write(&b, 1); }

/**
* Write a string to a file. Used by the Arduino Print class.
Expand Down
7 changes: 1 addition & 6 deletions Marlin/src/sd/SdFile.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,7 @@ class SdFile : public SdBaseFile {
public:
SdFile() {}
SdFile(const char * const name, const uint8_t oflag);
#if ARDUINO >= 100
size_t write(const uint8_t b);
#else
void write(const uint8_t b);
#endif

size_t write(const uint8_t b);
int16_t write(const void * const buf, const uint16_t nbyte);
void write(const char * const str);
void write_P(PGM_P str);
Expand Down
2 changes: 1 addition & 1 deletion buildroot/tests/STM32F103RE_creality
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ opt_enable DWIN_CREALITY_LCD_JYERSUI AUTO_BED_LEVELING_BILINEAR PROBE_MANUALLY
exec_test $1 $2 "Ender-3 v2 with JyersUI" "$3"

use_example_configs "Creality/Ender-3 S1/STM32F1"
opt_disable DWIN_CREALITY_LCD Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN AUTO_BED_LEVELING_BILINEAR CONFIGURATION_EMBEDDING CANCEL_OBJECTS FWRETRACT
opt_disable DWIN_CREALITY_LCD Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN AUTO_BED_LEVELING_BILINEAR CANCEL_OBJECTS FWRETRACT
opt_enable DWIN_LCD_PROUI INDIVIDUAL_AXIS_HOMING_SUBMENU SET_PROGRESS_MANUALLY SET_PROGRESS_PERCENT STATUS_MESSAGE_SCROLLING \
SOUND_MENU_ITEM PRINTCOUNTER NOZZLE_PARK_FEATURE ADVANCED_PAUSE_FEATURE FILAMENT_RUNOUT_SENSOR \
BLTOUCH Z_SAFE_HOMING AUTO_BED_LEVELING_UBL MESH_EDIT_MENU \
Expand Down

0 comments on commit 55191ec

Please sign in to comment.