From 76e7613841b0de42194bd965365b986d45eb7589 Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Mon, 11 Dec 2006 14:01:54 +0000 Subject: [PATCH] Fix a bug introduced in rev. 1.69, when implementing the fallback from each programmer's paged_load() or paged_write() method, respectively. The return value needs to be checked for being greater or equal than 0 rather equal to 0 in order to assume the operation has been successful. Fixes bug #18489: avrdude is too slow (20 byte/s) git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@695 81a1dc3b-b13d-400b-aceb-764788c761c2 --- ChangeLog | 9 +++++++++ avr.c | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index cfa6e9af..931c05f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-12-11 Joerg Wunsch + + * avr.c: Fix a bug introduced in rev. 1.69, when implementing the + fallback from each programmer's paged_load() or paged_write() + method, respectively. The return value needs to be checked for + being greater or equal than 0 rather equal to 0 in order to + assume the operation has been successful. + Fixes bug #18489: avrdude is too slow (20 byte/s) + 2006-12-11 Joerg Wunsch * avr910.c: Make the code compile warning-free: diff --git a/avr.c b/avr.c index 4a692632..6f75ca6c 100644 --- a/avr.c +++ b/avr.c @@ -183,7 +183,7 @@ int avr_read(PROGRAMMER * pgm, AVRPART * p, char * memtype, int size, * instead */ rc = pgm->paged_load(pgm, p, mem, mem->page_size, size); - if (rc == 0) { + if (rc >= 0) { if (strcasecmp(mem->desc, "flash") == 0) return avr_mem_hiaddr(mem); else @@ -579,7 +579,7 @@ int avr_write(PROGRAMMER * pgm, AVRPART * p, char * memtype, int size, * efficiently than we can read it directly, so use its routine * instead */ - if (pgm->paged_write(pgm, p, m, m->page_size, size) == 0) + if (pgm->paged_write(pgm, p, m, m->page_size, size) >= 0) return 0; } }