Devicetree
 help / color / mirror / Atom feed
From: Warner Losh <imp-uzTCJ5RojNnQT0dZR+AlfA@public.gmane.org>
To: scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org
Cc: devicetree-discuss-mnsaURCQ41sdnm+yROfE0A@public.gmane.org
Subject: Re: [PATCH 3/8] Enhance source position implementation.
Date: Wed, 24 Sep 2008 11:23:35 -0600 (MDT)	[thread overview]
Message-ID: <20080924.112335.74673920.imp@bsdimp.com> (raw)
In-Reply-To: <48DA73DA.5000603-KZfg59tc24xl57MIdRCFDg@public.gmane.org>

From: Scott Wood <scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Subject: Re: [PATCH 3/8] Enhance source position implementation.
Date: Wed, 24 Sep 2008 12:07:38 -0500

> Jon Loeliger wrote:
> > @@ -106,7 +123,9 @@ fail:
> >  	die("Couldn't open \"%s\": %s\n", fname, strerror(errno));
> >  }
> >  
> > -void dtc_close_file(struct dtc_file *file)
> > +
> > +void
> > +dtc_close_file(struct dtc_file *file)
> 
> :-(
> 
> > +char *
> > +srcpos_string(srcpos *pos)
> > +{
> > +#	define POS_BUF_SIZE	(100)
> 
> Local #defines make $YOUTHFUL_DEITY_OFFSPRING cry (and the whitespace 
> after the # doesn't help).  Declare a "const int", or just use sizeof(buf).
> 
> > +	const char *fname;
> > +	char buf[POS_BUF_SIZE];
> > +
> > +	if (pos->file && pos->file->name)
> > +		fname = pos->file->name;
> > +	else
> > +		fname = "<no-file>";
> > +
> > +	if (pos->first_line == pos->last_line) {
> > +		if (pos->first_column == pos->last_column) {
> > +			snprintf(buf, POS_BUF_SIZE, "%s %d:%d",
> > +				 fname, pos->first_line, pos->first_column);
> > +		} else {
> > +			snprintf(buf, POS_BUF_SIZE, "%s %d:%d-%d",
> > +				 fname, pos->first_line,
> > +				 pos->first_column, pos->last_column);
> > +		}
> > +
> > +	} else {
> > +		snprintf(buf, POS_BUF_SIZE, "%s %d:%d - %d:%d",
> > +			 fname,
> > +			 pos->first_line, pos->first_column,
> > +			 pos->last_line, pos->last_column);
> > +	}
> 
> Seems a little elaborate; are there cases where reporting the 
> line/column of the first character of the token is not clear?
> 
> > +	return strdup(buf);
> 
> Why not just dynamically allocate the buffer in the first place?  Or if 
> you care about the memory wastage (which you probably don't, given that 
> you just leak the allocated string in the callers in later patches), 
> make this function take a FILE * to output to, rather than return an 
> allocated string.

Wouldn't asprintf be more appropriate?  That way you wouldn't have
trunctation issues either that you get with snprintf.  While asprintf
is an extension, it is a common enough one...

Warner

  parent reply	other threads:[~2008-09-24 17:23 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-23 19:04 [PATCH 0/8] Implement a new DTS Source Language Jon Loeliger
     [not found] ` <1222196652-13811-1-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04   ` [PATCH 1/8] Remove support for the legacy DTS source file format Jon Loeliger
     [not found]     ` <1222196652-13811-2-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04       ` [PATCH 2/8] Add conditionalized debug() print macro Jon Loeliger
     [not found]         ` <1222196652-13811-3-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04           ` [PATCH 3/8] Enhance source position implementation Jon Loeliger
     [not found]             ` <1222196652-13811-4-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04               ` [PATCH 4/8] Add header files for new Internal Representation form Jon Loeliger
     [not found]                 ` <1222196652-13811-5-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04                   ` [PATCH 5/8] Add most of the new IR implementation files Jon Loeliger
     [not found]                     ` <1222196652-13811-6-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04                       ` [PATCH 6/8] Add the main IR evaluation implementation Jon Loeliger
     [not found]                         ` <1222196652-13811-7-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04                           ` [PATCH 7/8] Introduce new DTS language Jon Loeliger
     [not found]                             ` <1222196652-13811-8-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-23 19:04                               ` [PATCH 8/8] Add documentation for the " Jon Loeliger
     [not found]                                 ` <1222196652-13811-9-git-send-email-jdl-CYoMK+44s/E@public.gmane.org>
2008-09-25 13:00                                   ` Josh Boyer
2008-09-24 22:25                       ` [PATCH 5/8] Add most of the new IR implementation files Scott Wood
2008-09-24 19:17                   ` [PATCH 4/8] Add header files for new Internal Representation form Scott Wood
2008-09-24 17:07               ` [PATCH 3/8] Enhance source position implementation Scott Wood
     [not found]                 ` <48DA73DA.5000603-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-09-24 17:17                   ` Jon Loeliger
2008-09-24 17:21                     ` Scott Wood
2008-09-24 17:23                   ` Warner Losh [this message]
2008-09-24 17:23               ` Scott Wood
2008-09-25 12:42           ` [PATCH 2/8] Add conditionalized debug() print macro Josh Boyer
2008-09-24  2:34   ` [PATCH 0/8] Implement a new DTS Source Language Kumar Gala
     [not found]     ` <097BFF8D-317F-4E85-AC2A-4C0A8D6C608B-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2008-09-24 16:51       ` Jon Loeliger
2008-09-24 18:48         ` Jon Loeliger
2008-09-25  4:31           ` David Gibson
2008-09-25  4:26         ` David Gibson
     [not found]           ` <20080925042613.GJ15169-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
2008-09-25 15:25             ` Scott Wood
2008-09-25  3:50       ` David Gibson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080924.112335.74673920.imp@bsdimp.com \
    --to=imp-uztcj5rojnnqt0dzr+alfa@public.gmane.org \
    --cc=devicetree-discuss-mnsaURCQ41sdnm+yROfE0A@public.gmane.org \
    --cc=scottwood-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox