Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Dave Allan <da_gdb@egenera.com>
To: Andrew Cagney <cagney@gnu.org>
Cc: GDB patches <gdb-patches@sources.redhat.com>
Subject: Re: make execute_control_command conform to docs
Date: Tue, 24 Feb 2004 21:51:00 -0000	[thread overview]
Message-ID: <1077659195.1310.192.camel@hasufel.egenera.com> (raw)
In-Reply-To: <403BB5AD.9040502@gnu.org>

I was trying to make the patch as small as possible, but I ought to have
done it as you say.  Letting everything flow through to the end so that
there is only one return point is definitely the cleanest way to do it. 

Dave




On Tue, 2004-02-24 at 15:35, Andrew Cagney wrote:
> > 
> > Index: cli-script.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/cli/cli-script.c,v
> > retrieving revision 1.21
> > diff -u -r1.21 cli-script.c
> > --- cli-script.c	22 Dec 2003 03:43:19 -0000	1.21
> > +++ cli-script.c	24 Feb 2004 15:55:06 -0000
> > @@ -294,7 +294,7 @@
> >  {
> >    struct expression *expr;
> >    struct command_line *current;
> > -  struct cleanup *old_chain = 0;
> > +  struct cleanup *old_chain = make_cleanup (null_cleanup, 0);
> >    struct value *val;
> >    struct value *val_mark;
> >    int loop;
> > @@ -427,8 +427,7 @@
> >        return invalid_control;
> >      }
> >  
> > -  if (old_chain)
> > -    do_cleanups (old_chain);
> > +  do_cleanups (old_chain);
> >  
> >    return ret;
> >  }
> 
> Close,
> 
> Paths where the function explicitly does a "return" such as this:
> 
>      default:
>        warning ("Invalid control type in command structure.");
>        return invalid_control;
> 
> should cleanup (or better? let things flow to the end), and this:
> 
>    struct cleanup *old_chain = make_cleanup (null_cleanup, 0);
>      ...
>        old_chain = make_cleanup (free_current_contents, &new_line);
> 
> leaves a dangling cleanup (it is eventually processed but I'm not sure 
> where).
> 
> I'll re-arange the relevant code.
> 
> Andrew
> 
> PS: Remember to include a ChangeLog entry in patches.
> 


  reply	other threads:[~2004-02-24 21:51 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-24 16:47 David Allan
2004-02-24 20:36 ` Andrew Cagney
2004-02-24 21:51   ` Dave Allan [this message]
2004-02-24 23:12     ` Andrew Cagney
2004-02-25 14:02       ` Dave Allan
2004-02-25 15:56         ` Andrew Cagney

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=1077659195.1310.192.camel@hasufel.egenera.com \
    --to=da_gdb@egenera.com \
    --cc=cagney@gnu.org \
    --cc=gdb-patches@sources.redhat.com \
    /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