diff options
author | Pedro Alves <palves@redhat.com> | 2016-11-08 15:26:47 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2016-11-08 15:26:47 +0000 |
commit | 3cde5c42d1c1ddcf8bbde5c47233c644370c959c (patch) | |
tree | 887cf692d863e70717f3a3f957f99d82469ccee5 /gdb/remote.c | |
parent | 833177a4a5c1a2a6cabe70bfe35ecf241b68d169 (diff) | |
download | gdb-3cde5c42d1c1ddcf8bbde5c47233c644370c959c.zip gdb-3cde5c42d1c1ddcf8bbde5c47233c644370c959c.tar.gz gdb-3cde5c42d1c1ddcf8bbde5c47233c644370c959c.tar.bz2 |
Eliminate agent_expr_p; VEC -> std::vector in struct bp_target_info
After the previous patch, we end up with these two types with quite
similar, and potentially confusing names:
typedef gdb::unique_ptr<agent_expr> agent_expr_up;
/* Pointer to an agent_expr structure. */
typedef struct agent_expr *agent_expr_p;
The latter is only necessary to put agent_expr pointers in VECs. So
just eliminate it and use std::vector instead.
gdb/ChangeLog:
2016-11-08 Pedro Alves <palves@redhat.com>
* ax.h (agent_expr_p): Delete.
(DEF_VEC_P (agent_expr_p)): Delete.
* breakpoint.c (build_target_condition_list)
(build_target_command_list): Adjust to use of std::vector.
(bp_location_dtor): Remove now unnecessary VEC_free calls.
* breakpoint.h: Include <vector>.
(struct bp_target_info) <conditions, tcommands>: Now
std::vector's.
* remote.c (remote_add_target_side_condition): bp_tgt->conditions
is now a std::vector; adjust.
(remote_add_target_side_commands, remote_insert_breakpoint):
bp_tgt->tcommands is now a std::vector; adjust.
Diffstat (limited to 'gdb/remote.c')
-rw-r--r-- | gdb/remote.c | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/gdb/remote.c b/gdb/remote.c index 419ebf9..ef6c54e 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -9623,10 +9623,7 @@ remote_add_target_side_condition (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt, char *buf, char *buf_end) { - struct agent_expr *aexpr = NULL; - int i, ix; - - if (VEC_empty (agent_expr_p, bp_tgt->conditions)) + if (bp_tgt->conditions.empty ()) return 0; buf += strlen (buf); @@ -9634,13 +9631,13 @@ remote_add_target_side_condition (struct gdbarch *gdbarch, buf++; /* Send conditions to the target and free the vector. */ - for (ix = 0; - VEC_iterate (agent_expr_p, bp_tgt->conditions, ix, aexpr); - ix++) + for (int ix = 0; ix < bp_tgt->conditions.size (); ix++) { + struct agent_expr *aexpr = bp_tgt->conditions[ix]; + xsnprintf (buf, buf_end - buf, "X%x,", aexpr->len); buf += strlen (buf); - for (i = 0; i < aexpr->len; ++i) + for (int i = 0; i < aexpr->len; ++i) buf = pack_hex_byte (buf, aexpr->buf[i]); *buf = '\0'; } @@ -9651,10 +9648,7 @@ static void remote_add_target_side_commands (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt, char *buf) { - struct agent_expr *aexpr = NULL; - int i, ix; - - if (VEC_empty (agent_expr_p, bp_tgt->tcommands)) + if (bp_tgt->tcommands.empty ()) return; buf += strlen (buf); @@ -9664,13 +9658,13 @@ remote_add_target_side_commands (struct gdbarch *gdbarch, /* Concatenate all the agent expressions that are commands into the cmds parameter. */ - for (ix = 0; - VEC_iterate (agent_expr_p, bp_tgt->tcommands, ix, aexpr); - ix++) + for (int ix = 0; ix < bp_tgt->tcommands.size (); ix++) { + struct agent_expr *aexpr = bp_tgt->tcommands[ix]; + sprintf (buf, "X%x,", aexpr->len); buf += strlen (buf); - for (i = 0; i < aexpr->len; ++i) + for (int i = 0; i < aexpr->len; ++i) buf = pack_hex_byte (buf, aexpr->buf[i]); *buf = '\0'; } @@ -9735,7 +9729,7 @@ remote_insert_breakpoint (struct target_ops *ops, /* If this breakpoint has target-side commands but this stub doesn't support Z0 packets, throw error. */ - if (!VEC_empty (agent_expr_p, bp_tgt->tcommands)) + if (!bp_tgt->tcommands.empty ()) throw_error (NOT_SUPPORTED_ERROR, _("\ Target doesn't support breakpoints that have target side commands.")); |