From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: gdb-patches@sourceware.org
Subject: [patch] Code cleanup: bpstat_alloc calling semantics standardization
Date: Wed, 11 Aug 2010 20:11:00 -0000 [thread overview]
Message-ID: <20100811201027.GA16057@host1.dyn.jankratochvil.net> (raw)
Hi,
this is just for the second patch I am going to send in a minute. I would not
patch it standalone but I could not manage to code anything on top of it.
No regressions on {x86_64,x86_64-m32,i686}-fedora14snapshot-linux-gnu.
(Tested together with the second patch.)
Thanks,
Jan
2010-08-11 Jan Kratochvil <jan.kratochvil@redhat.com>
Code cleanup.
* breakpoint.c (bpstat_alloc): Remove unused prototype.
(bpstat_alloc): Change parameters cbs to bs_link_pointer. Adjust the
code.
(bpstat_stop_status): Change root_bs into bs_head and bs_link. Adjust
calls of bpstat_alloc. Remove explicit bs chain termination.
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -135,8 +135,6 @@ static void watchpoints_info (char *, int);
static int breakpoint_1 (int, int, int (*) (const struct breakpoint *));
-static bpstat bpstat_alloc (const struct bp_location *, bpstat);
-
static int breakpoint_cond_eval (void *);
static void cleanup_executing_breakpoints (void *);
@@ -3442,15 +3440,17 @@ breakpoint_cond_eval (void *exp)
return i;
}
-/* Allocate a new bpstat and chain it to the current one. */
+/* Allocate a new bpstat. Link it to the FIFO list by BS_LINK_POINTER. */
static bpstat
-bpstat_alloc (const struct bp_location *bl, bpstat cbs /* Current "bs" value */ )
+bpstat_alloc (const struct bp_location *bl, bpstat **bs_link_pointer)
{
bpstat bs;
bs = (bpstat) xmalloc (sizeof (*bs));
- cbs->next = bs;
+ bs->next = NULL;
+ **bs_link_pointer = bs;
+ *bs_link_pointer = &bs->next;
bs->breakpoint_at = bl;
/* If the condition is false, etc., don't do the commands. */
bs->commands = NULL;
@@ -4027,10 +4027,10 @@ bpstat_stop_status (struct address_space *aspace,
struct breakpoint *b = NULL;
struct bp_location *bl;
struct bp_location *loc;
- /* Root of the chain of bpstat's */
- struct bpstats root_bs[1];
+ /* First item of allocated bpstat's. */
+ bpstat bs_head = NULL, *bs_link = &bs_head;
/* Pointer to the last thing in the chain currently. */
- bpstat bs = root_bs;
+ bpstat bs;
int ix;
int need_remove_insert;
@@ -4061,7 +4061,7 @@ bpstat_stop_status (struct address_space *aspace,
/* Come here if it's a watchpoint, or if the break address matches */
- bs = bpstat_alloc (bl, bs); /* Alloc a bpstat to explain stop */
+ bs = bpstat_alloc (bl, &bs_link); /* Alloc a bpstat to explain stop */
/* Assume we stop. Should we find watchpoint that is not actually
triggered, or if condition of breakpoint is false, we'll reset
@@ -4119,7 +4119,7 @@ bpstat_stop_status (struct address_space *aspace,
if (breakpoint_address_match (loc->pspace->aspace, loc->address,
aspace, bp_addr))
{
- bs = bpstat_alloc (loc, bs);
+ bs = bpstat_alloc (loc, &bs_link);
/* For hits of moribund locations, we should just proceed. */
bs->stop = 0;
bs->print = 0;
@@ -4127,15 +4127,13 @@ bpstat_stop_status (struct address_space *aspace,
}
}
- bs->next = NULL; /* Terminate the chain */
-
/* If we aren't stopping, the value of some hardware watchpoint may
not have changed, but the intermediate memory locations we are
watching may have. Don't bother if we're stopping; this will get
done later. */
need_remove_insert = 0;
- if (! bpstat_causes_stop (root_bs->next))
- for (bs = root_bs->next; bs != NULL; bs = bs->next)
+ if (! bpstat_causes_stop (bs_head))
+ for (bs = bs_head; bs != NULL; bs = bs->next)
if (!bs->stop
&& bs->breakpoint_at->owner
&& is_hardware_watchpoint (bs->breakpoint_at->owner))
@@ -4150,7 +4148,7 @@ bpstat_stop_status (struct address_space *aspace,
if (need_remove_insert)
update_global_location_list (1);
- return root_bs->next;
+ return bs_head;
}
static void
next reply other threads:[~2010-08-11 20:11 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-11 20:11 Jan Kratochvil [this message]
2010-08-18 22:48 ` Tom Tromey
2010-08-19 8:16 ` Jan Kratochvil
2010-08-24 21:33 ` Tom Tromey
2010-08-24 22:09 ` Pedro Alves
2010-08-30 9:49 ` Jan Kratochvil
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=20100811201027.GA16057@host1.dyn.jankratochvil.net \
--to=jan.kratochvil@redhat.com \
--cc=gdb-patches@sourceware.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