On Sat, Mar 04, 2017 at 02:26:43PM +0100, Nicolas Iooss wrote: > Using %.*s format helps making asm_emit_string() not modify its "str" > parameter. > > While at it, constify the "str" parameter of bin_emit_string() and > asm_emit_string(), as these function no longer modify it. > > Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@xxxxxxx> All applued, thanks. > --- > flattree.c | 22 +++++++--------------- > 1 file changed, 7 insertions(+), 15 deletions(-) > > diff --git a/flattree.c b/flattree.c > index ebac548b3fa8..d8a118258e01 100644 > --- a/flattree.c > +++ b/flattree.c > @@ -49,7 +49,7 @@ static struct version_info { > > struct emitter { > void (*cell)(void *, cell_t); > - void (*string)(void *, char *, int); > + void (*string)(void *, const char *, int); > void (*align)(void *, int); > void (*data)(void *, struct data); > void (*beginnode)(void *, struct label *labels); > @@ -64,7 +64,7 @@ static void bin_emit_cell(void *e, cell_t val) > *dtbuf = data_append_cell(*dtbuf, val); > } > > -static void bin_emit_string(void *e, char *str, int len) > +static void bin_emit_string(void *e, const char *str, int len) > { > struct data *dtbuf = e; > > @@ -144,22 +144,14 @@ static void asm_emit_cell(void *e, cell_t val) > (val >> 8) & 0xff, val & 0xff); > } > > -static void asm_emit_string(void *e, char *str, int len) > +static void asm_emit_string(void *e, const char *str, int len) > { > FILE *f = e; > - char c = 0; > > - if (len != 0) { > - /* XXX: ewww */ > - c = str[len]; > - str[len] = '\0'; > - } > - > - fprintf(f, "\t.string\t\"%s\"\n", str); > - > - if (len != 0) { > - str[len] = c; > - } > + if (len != 0) > + fprintf(f, "\t.string\t\"%.*s\"\n", len, str); > + else > + fprintf(f, "\t.string\t\"%s\"\n", str); > } > > static void asm_emit_align(void *e, int a) -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature