aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog12
-rw-r--r--gdb/target.c36
2 files changed, 22 insertions, 26 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 49e58a6..f35ba1b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2014-08-19 Simon Marchi <simon.marchi@ericsson.com>
+
+ * target.c (target_struct_size): Remove.
+ (target_struct_allocsize): Remove.
+ (DEFAULT_ALLOCSIZE): Remove.
+ (target_ops_p): New typedef.
+ (DEF_VEC_P (target_ops_p)): New vector type.
+ (target_structs): Change type to VEC (target_ops_p).
+ (add_target_with_completer): Replace "push" code by VEC_safe_push.
+ (find_default_run_target): Rewrite for loop following changes to
+ target_structs.
+
2014-08-19 Joel Brobecker <brobecker@adacore.com>
* value.c (value_from_pointer): Remove use of resolve_dynamic_type.
diff --git a/gdb/target.c b/gdb/target.c
index ba244bc..8bf6031 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -117,13 +117,10 @@ static void init_dummy_target (void);
static void update_current_target (void);
-/* Pointer to array of target architecture structures; the size of the
- array; the current index into the array; the allocated size of the
- array. */
-struct target_ops **target_structs;
-unsigned target_struct_size;
-unsigned target_struct_allocsize;
-#define DEFAULT_ALLOCSIZE 10
+/* Vector of existing target structures. */
+typedef struct target_ops *target_ops_p;
+DEF_VEC_P (target_ops_p);
+static VEC (target_ops_p) *target_structs;
/* The initial current target, so that there is always a semi-valid
current target. */
@@ -379,20 +376,7 @@ add_target_with_completer (struct target_ops *t,
complete_target_initialization (t);
- if (!target_structs)
- {
- target_struct_allocsize = DEFAULT_ALLOCSIZE;
- target_structs = (struct target_ops **) xmalloc
- (target_struct_allocsize * sizeof (*target_structs));
- }
- if (target_struct_size >= target_struct_allocsize)
- {
- target_struct_allocsize *= 2;
- target_structs = (struct target_ops **)
- xrealloc ((char *) target_structs,
- target_struct_allocsize * sizeof (*target_structs));
- }
- target_structs[target_struct_size++] = t;
+ VEC_safe_push (target_ops_p, target_structs, t);
if (targetlist == NULL)
add_prefix_cmd ("target", class_run, target_command, _("\
@@ -2363,15 +2347,15 @@ find_default_run_target (char *do_mesg)
if (auto_connect_native_target)
{
- struct target_ops **t;
+ struct target_ops *t;
int count = 0;
+ int i;
- for (t = target_structs; t < target_structs + target_struct_size;
- ++t)
+ for (i = 0; VEC_iterate (target_ops_p, target_structs, i, t); ++i)
{
- if ((*t)->to_can_run != delegate_can_run && target_can_run (*t))
+ if (t->to_can_run != delegate_can_run && target_can_run (t))
{
- runable = *t;
+ runable = t;
++count;
}
}