Guard pgm->page_erase() from being called when unset

This commit is contained in:
Stefan Rueger
2023-06-01 21:46:09 +01:00
parent 3ea05c4d33
commit 24f845cdd8
2 changed files with 2 additions and 2 deletions

View File

@@ -1054,7 +1054,7 @@ int avr_write_mem(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *m, int
if (need_write) {
rc = 0;
if (auto_erase)
if (auto_erase && pgm->page_erase)
rc = pgm->page_erase(pgm, p, cm, pageaddr);
if (rc >= 0)
rc = pgm->paged_write(pgm, p, cm, cm->page_size, pageaddr, cm->page_size);

View File

@@ -549,7 +549,7 @@ int avr_flush_cache(const PROGRAMMER *pgm, const AVRPART *p) {
for(int iwr = 0, pgno = 0, n = 0; n < cp->size; pgno++, n += cp->page_size) {
if(cp->iscached[pgno] && memcmp(cp->copy + n, cp->cont + n, cp->page_size)) {
if(!chiperase && mems[i].pgerase)
if(!chiperase && mems[i].pgerase && pgm->page_erase)
pgm->page_erase(pgm, p, mem, n);
if(writeCachePage(cp, pgm, p, mem, n, 1) < 0)
return LIBAVRDUDE_GENERAL_FAILURE;