From af5f7ee565a5aa5079bc073d511c2bb4f1f49796 Mon Sep 17 00:00:00 2001 From: Stefan Rueger Date: Fri, 19 Apr 2024 12:35:39 +0100 Subject: [PATCH] Utilise magic memory tree interface for urclock.c --- src/avrdude.h | 1 + src/urclock.c | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/avrdude.h b/src/avrdude.h index c679a654..6b777d30 100644 --- a/src/avrdude.h +++ b/src/avrdude.h @@ -44,6 +44,7 @@ extern const char *pgmid; // Programmer -c string #define mmt_strdup(s) cfg_strdup(__func__, s) #define mmt_malloc(n) cfg_malloc(__func__, n) #define mmt_realloc(p, n) cfg_realloc(__func__, p, n) +#define mmt_free(p) free(p) int avrdude_message2(FILE *fp, int lno, const char *file, const char *func, int msgmode, int msglvl, const char *format, ...); diff --git a/src/urclock.c b/src/urclock.c index 1787ff80..5d488252 100644 --- a/src/urclock.c +++ b/src/urclock.c @@ -1803,38 +1803,38 @@ static int ur_readEF(const PROGRAMMER *pgm, const AVRPART *p, uint8_t *buf, uint static int parseUrclockID(const PROGRAMMER *pgm) { if(*ur.iddesc) { // User override of ID, eg, -xid=F.-4.2 for penultimate flash word - char *idstr = cfg_strdup(__func__, ur.iddesc), *idlenp; + char *idstr = mmt_strdup(ur.iddesc), *idlenp; const char *errstr; int ad, lg; if(!(strchr("EF", *idstr) && idstr[1] == '.')) { pmsg_warning("-xid=%s string must start with E. or F.\n", ur.iddesc); - free(idstr); + mmt_free(idstr); return -1; } if(!(idlenp = strchr(idstr+2, '.'))) { pmsg_warning("-xid=%s string must look like [E|F]..\n", ur.iddesc); - free(idstr); + mmt_free(idstr); return -1; } *idlenp++ = 0; ad = str_int(idstr+2, STR_INT32, &errstr); if(errstr) { pmsg_warning("address %s of -xid=%s: %s\n", idstr+2, ur.iddesc, errstr); - free(idstr); + mmt_free(idstr); return -1; } lg = str_int(idlenp, STR_INT32, &errstr); if(errstr) { pmsg_warning("length %s of -xid=%s string: %s\n", idlenp, ur.iddesc, errstr); - free(idstr); + mmt_free(idstr); return -1; } if(!lg || lg > 8) { pmsg_warning("length %s of -xid=%s string must be between 1 and 8\n", idlenp, ur.iddesc); - free(idstr); + mmt_free(idstr); return -1; } @@ -1842,7 +1842,7 @@ static int parseUrclockID(const PROGRAMMER *pgm) { ur.idaddr = ad; ur.idlen = lg; - free(idstr); + mmt_free(idstr); } return 0; @@ -2155,14 +2155,14 @@ static int urclock_chip_erase(const PROGRAMMER *pgm, const AVRPART *p) { AVRMEM *flm = avr_locate_flash(p); int vecsz = ur.uP.flashsize <= 8192? 2: 4; if(flm && flm->page_size >= vecsz) { - unsigned char *page = cfg_malloc(__func__, flm->page_size); + unsigned char *page = mmt_malloc(flm->page_size); memset(page, 0xff, flm->page_size); set_reset(pgm, page, vecsz); if(avr_write_page_default(pgm, p, flm, 0, page) < 0) { - free(page); + mmt_free(page); return -1; } - free(page); + mmt_free(page); } } } @@ -2539,7 +2539,7 @@ static int urclock_parseextparms(const PROGRAMMER *pgm, LISTID extparms) { static void urclock_setup(PROGRAMMER *pgm) { // Allocate ur - pgm->cookie = cfg_malloc(__func__, sizeof(Urclock_t)); + pgm->cookie = mmt_malloc(sizeof(Urclock_t)); ur.xvectornum = -1; // Initialise, to ascertain whether user had set to 0 ur.ext_addr_byte = 0xff; // So first memory address will load extended address @@ -2549,7 +2549,7 @@ static void urclock_setup(PROGRAMMER *pgm) { static void urclock_teardown(PROGRAMMER *pgm) { - free(pgm->cookie); + mmt_free(pgm->cookie); pgm->cookie = NULL; }