From 5b0af7e3791d89b5bf7bf6ba9a7e5e74bf6c77a5 Mon Sep 17 00:00:00 2001 From: Stefan Rueger Date: Thu, 25 Apr 2024 23:25:18 +0100 Subject: [PATCH] Utilise magic memory tree interface for developer_opts.c --- src/developer_opts.c | 82 +++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 43 deletions(-) diff --git a/src/developer_opts.c b/src/developer_opts.c index a0f7a11f..7d077c6c 100644 --- a/src/developer_opts.c +++ b/src/developer_opts.c @@ -107,8 +107,8 @@ static int opcodecmp(const OPCODE *op1, const OPCODE *op2, int opnum) { *p = '0'; cmp = strcmp(opstr1, opstr2); - free(opstr1); - free(opstr2); + mmt_free(opstr1); + mmt_free(opstr2); return cmp; } @@ -210,7 +210,7 @@ static void checkaddr(int memsize, int pagesize, int opnum, const OPCODE *op, co dev_info(".cmderr\t%s\t%s-%s\tbit %d outside addressable space should be x or 0 but is %s\n", p->desc, m->desc, opstr, i+8, cbs? cbs: "NULL"); if(cbs) - free(cbs); + mmt_free(cbs); } } else { if(op->bit[i+8].type != AVR_CMDBIT_ADDRESS) @@ -237,10 +237,10 @@ static char *dev_sprintf(const char *fmt, ...) { va_end(ap); if(size < 0) - return cfg_strdup("dev_sprintf()", ""); + return mmt_strdup(""); size++; // For terminating '\0' - p = cfg_malloc("dev_sprintf()", size); + p = mmt_malloc(size); va_start(ap, fmt); size = vsnprintf(p, size, fmt, ap); @@ -337,8 +337,7 @@ static int dev_part_strct_entry(bool tsv, // Print as spreadsheet? dev_cout(comms, n, 1, 1); // Print comments on rhs } - if(cont) - free(cont); + mmt_free(cont); return 1; } @@ -606,7 +605,7 @@ static void dev_part_strct(const AVRPART *p, bool tsv, const AVRPART *base, bool firstid = 0; char *str = cfg_escape(ldata(ln)); dev_info("%*s%s", tsv? 0: 8, "", str); - free(str); + mmt_free(str); } if(tsv) dev_info("\n"); @@ -625,9 +624,9 @@ static void dev_part_strct(const AVRPART *p, bool tsv, const AVRPART *base, bool } _if_partout_str(strcmp, cfg_escape(p->family_id), family_id); - _if_partout_str(intcmp, cfg_strdup("dev_part_strct()", prog_modes_str(p->prog_modes)), prog_modes); + _if_partout_str(intcmp, mmt_strdup(prog_modes_str(p->prog_modes)), prog_modes); if(p->mcuid == 21) { - _if_partout_str(intcmp, cfg_strdup(__func__, "XVII + IV"), mcuid); + _if_partout_str(intcmp, mmt_strdup("XVII + IV"), mcuid); } else { _if_partout(intcmp, "%d", mcuid); } @@ -645,13 +644,12 @@ static void dev_part_strct(const AVRPART *p, bool tsv, const AVRPART *base, bool _if_partout(intcmp, "0x%04x", usbpid); if(!base || base->reset_disposition != p->reset_disposition) - _partout_str(cfg_strdup("dev_part_strct()", - p->reset_disposition == RESET_DEDICATED? "dedicated": p->reset_disposition == RESET_IO? "io": "unknown"), + _partout_str(mmt_strdup(p->reset_disposition == RESET_DEDICATED? + "dedicated": p->reset_disposition == RESET_IO? "io": "unknown"), reset); - _if_partout_str(intcmp, cfg_strdup("dev_part_strct()", - p->retry_pulse == PIN_AVR_RESET? "reset": p->retry_pulse == PIN_AVR_SCK? "sck": "unknown"), - retry_pulse); + _if_partout_str(intcmp, mmt_strdup(p->retry_pulse == PIN_AVR_RESET? + "reset": p->retry_pulse == PIN_AVR_SCK? "sck": "unknown"), retry_pulse); if(!base || base->flags != p->flags) { if(tsv) { @@ -664,9 +662,8 @@ static void dev_part_strct(const AVRPART *p, bool tsv, const AVRPART *base, bool if(!base || (base->flags & (AVRPART_PARALLELOK | AVRPART_PSEUDOPARALLEL)) != (p->flags & (AVRPART_PARALLELOK | AVRPART_PSEUDOPARALLEL))) { int par = p->flags & (AVRPART_PARALLELOK | AVRPART_PSEUDOPARALLEL); - _partout_str(cfg_strdup("dev_part_strct()", - par == 0? "no": par == AVRPART_PSEUDOPARALLEL? "unknown": AVRPART_PARALLELOK? "yes": "pseudo"), - parallel); + _partout_str(mmt_strdup(par == 0? "no": + par == AVRPART_PSEUDOPARALLEL? "unknown": AVRPART_PARALLELOK? "yes": "pseudo"), parallel); } } } @@ -788,7 +785,7 @@ static void dev_part_strct(const AVRPART *p, bool tsv, const AVRPART *base, bool if(meminj[i].mcu && str_casematch(meminj[i].mcu, p->desc)) if(str_match(meminj[i].mem, m->desc)) { dev_part_strct_entry(tsv, ".ptmm", p->desc, m->desc, - meminj[i].var, cfg_strdup("meminj", meminj[i].value), NULL); + meminj[i].var, mmt_strdup(meminj[i].value), NULL); meminj[i].mcu = NULL; } @@ -824,14 +821,14 @@ static void dev_part_strct(const AVRPART *p, bool tsv, const AVRPART *base, bool if(ptinj[i].mcu) if(str_casematch(ptinj[i].mcu, p->desc)) dev_part_strct_entry(tsv, ".pt", p->desc, NULL, - ptinj[i].var, cfg_strdup("ptinj", ptinj[i].value), NULL); + ptinj[i].var, mmt_strdup(ptinj[i].value), NULL); for(size_t i=0; idesc)) { if(!tsv) dev_info(" memory \"%s\"\n", meminj[i].mem); dev_part_strct_entry(tsv, ".ptmm", p->desc, meminj[i].mem, - meminj[i].var, cfg_strdup("meminj", meminj[i].value), NULL); + meminj[i].var, mmt_strdup(meminj[i].value), NULL); meminj[i].mcu = NULL; if(!tsv) dev_info(" ;\n"); @@ -850,21 +847,21 @@ void dev_output_pgm_part(int dev_opt_c, const char *programmer, int dev_opt_p, c char *p; dev_print_comment(cfg_get_prologue()); - dev_info("avrdude_conf_version = %s;\n\n", p = cfg_escape(avrdude_conf_version)); free(p); - dev_info("default_programmer = %s;\n", p = cfg_escape(default_programmer)); free(p); - dev_info("default_parallel = %s;\n", p = cfg_escape(default_parallel)); free(p); - dev_info("default_serial = %s;\n", p = cfg_escape(default_serial)); free(p); - dev_info("default_spi = %s;\n", p = cfg_escape(default_spi)); free(p); + dev_info("avrdude_conf_version = %s;\n\n", p = cfg_escape(avrdude_conf_version)); mmt_free(p); + dev_info("default_programmer = %s;\n", p = cfg_escape(default_programmer)); mmt_free(p); + dev_info("default_parallel = %s;\n", p = cfg_escape(default_parallel)); mmt_free(p); + dev_info("default_serial = %s;\n", p = cfg_escape(default_serial)); mmt_free(p); + dev_info("default_spi = %s;\n", p = cfg_escape(default_spi)); mmt_free(p); dev_info("default_baudrate = %d;\n", default_baudrate); dev_info("default_bitclock = %7.5f;\n", default_bitclock); - dev_info("default_linuxgpio = %s;\n", p = cfg_escape(default_linuxgpio)); free(p); + dev_info("default_linuxgpio = %s;\n", p = cfg_escape(default_linuxgpio)); mmt_free(p); dev_info("allow_subshells = %s;\n", allow_subshells? "yes": "no"); dev_info("\n#\n# PROGRAMMER DEFINITIONS\n#\n\n"); } if(dev_opt_c) - dev_output_pgm_defs(cfg_strdup("main()", programmer)); + dev_output_pgm_defs(mmt_strdup(programmer)); if(dev_opt_p == 2 && dev_opt_c) dev_info("\n"); @@ -872,7 +869,7 @@ void dev_output_pgm_part(int dev_opt_c, const char *programmer, int dev_opt_p, c dev_info("#\n# PART DEFINITIONS\n#\n"); if(dev_opt_p) - dev_output_part_defs(cfg_strdup("main()", partdesc)); + dev_output_part_defs(mmt_strdup(partdesc)); } @@ -1250,7 +1247,7 @@ static char *dev_usbpid_liststr(const PROGRAMMER *pgm) { sprintf(spc + strlen(spc), "0x%04x", *(unsigned int *) ldata(ln)); } - return cfg_strdup(__func__, *spc? spc: "NULL"); + return mmt_strdup(*spc? spc: "NULL"); } static char *dev_hvupdi_support_liststr(const PROGRAMMER *pgm) { @@ -1267,7 +1264,7 @@ static char *dev_hvupdi_support_liststr(const PROGRAMMER *pgm) { sprintf(spc + strlen(spc), "%d", *(unsigned int *) ldata(ln)); } - return cfg_strdup(__func__, *spc? spc: "NULL"); + return mmt_strdup(*spc? spc: "NULL"); } @@ -1313,7 +1310,7 @@ static void dev_pgm_strct(const PROGRAMMER *pgm, bool tsv, const PROGRAMMER *bas firstid = 0; char *str = cfg_escape(ldata(ln)); dev_info("%s", str); - free(str); + mmt_free(str); } if(tsv) dev_info("\n"); @@ -1325,9 +1322,9 @@ static void dev_pgm_strct(const PROGRAMMER *pgm, bool tsv, const PROGRAMMER *bas _if_pgmout_str(strcmp, cfg_escape(pgm->desc), desc); if(!base || base->initpgm != pgm->initpgm) _pgmout_fmt("type", "\"%s\"", locate_programmer_type_id(pgm->initpgm)); - _if_pgmout_str(intcmp, cfg_strdup("dev_pgm_strct()", prog_modes_str(pgm->prog_modes)), prog_modes); - _if_pgmout_str(boolcmp, cfg_strdup("dev_pgm_strct()", pgm->is_serialadapter? "yes": "no"), is_serialadapter); - _if_pgmout_str(intcmp, cfg_strdup("dev_pgm_strct()", extra_features_str(pgm->extra_features)), extra_features); + _if_pgmout_str(intcmp, mmt_strdup(prog_modes_str(pgm->prog_modes)), prog_modes); + _if_pgmout_str(boolcmp, mmt_strdup(pgm->is_serialadapter? "yes": "no"), is_serialadapter); + _if_pgmout_str(intcmp, mmt_strdup(extra_features_str(pgm->extra_features)), extra_features); if(!base || base->conntype != pgm->conntype) _pgmout_fmt("connection_type", "%s", connstr(pgm->conntype)); _if_pgmout(intcmp, "%d", baudrate); @@ -1340,12 +1337,12 @@ static void dev_pgm_strct(const PROGRAMMER *pgm, bool tsv, const PROGRAMMER *bas if(base) { char *basestr = dev_usbpid_liststr(base); show = !str_eq(basestr, pgmstr); - free(basestr); + mmt_free(basestr); } if(show) dev_part_strct_entry(tsv, ".prog", id, NULL, "usbpid", pgmstr, pgm->comments); else // dev_part_strct_entry() frees pgmstr - free(pgmstr); + mmt_free(pgmstr); _if_pgmout_str(strcmp, cfg_escape(pgm->usbdev), usbdev); _if_pgmout_str(strcmp, cfg_escape(pgm->usbsn), usbsn); @@ -1358,9 +1355,8 @@ static void dev_pgm_strct(const PROGRAMMER *pgm, bool tsv, const PROGRAMMER *bas if(!base || !str_eq(bstr, str)) _pgmout_fmt(avr_pin_lcname(i), "%s", str); - free(str); - if(bstr) - free(bstr); + mmt_free(str); + mmt_free(bstr); } pgmstr = dev_hvupdi_support_liststr(pgm); @@ -1369,12 +1365,12 @@ static void dev_pgm_strct(const PROGRAMMER *pgm, bool tsv, const PROGRAMMER *bas if(base) { char *basestr = dev_hvupdi_support_liststr(base); show = !str_eq(basestr, pgmstr); - free(basestr); + mmt_free(basestr); } if(show) dev_part_strct_entry(tsv, ".prog", id, NULL, "hvupdi_support", pgmstr, pgm->comments); else // dev_part_strct_entry() frees pgmstr - free(pgmstr); + mmt_free(pgmstr); if(injct) for(size_t i=0; iid); ln; ln=lnext(ln)) if(str_casematch(pgminj[i].pgmid, ldata(ln))) dev_part_strct_entry(tsv, ".prog", ldata(ln), NULL, - pgminj[i].var, cfg_strdup("pgminj", pgminj[i].value), NULL); + pgminj[i].var, strdup(pgminj[i].value), NULL); if(!tsv) { dev_cout(pgm->comments, ";", 0, 0);