Re: [PATCH 1/5] dtc: Simplify asm_emit_string() implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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


[Index of Archives]     [Device Tree]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux