diff options
author | Michael Snyder <msnyder@vmware.com> | 2007-08-17 23:12:47 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@vmware.com> | 2007-08-17 23:12:47 +0000 |
commit | 0bd9908d01330dd5369b35e62ea8d8d7ada01e03 (patch) | |
tree | 5bfdf62de40d0e205804b2b8c0d426c9106a3c74 /gdb | |
parent | 7e976ae46d73ba3b38c95fba78385837295b0440 (diff) | |
download | gdb-0bd9908d01330dd5369b35e62ea8d8d7ada01e03.zip gdb-0bd9908d01330dd5369b35e62ea8d8d7ada01e03.tar.gz gdb-0bd9908d01330dd5369b35e62ea8d8d7ada01e03.tar.bz2 |
2007-08-17 Michael Snyder <msnyder@access-company.com>
* gdbtypes.h (virtual_base_list): Remove export decl.
* gdbtypes.c (virtual_base_list): Make static. Not called outside.
(virtual_base_index): Memory leak.
(virtual_base_index_skip_primaries): Ditto.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/gdbtypes.c | 35 | ||||
-rw-r--r-- | gdb/gdbtypes.h | 2 |
3 files changed, 22 insertions, 22 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index db01032..908a3c8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2007-08-17 Michael Snyder <msnyder@access-company.com> + + * gdbtypes.h (virtual_base_list): Remove export decl. + * gdbtypes.c (virtual_base_list): Make static. Not called outside. + (virtual_base_index): Memory leak. + (virtual_base_index_skip_primaries): Ditto. + 2007-08-17 Maxim Grigoriev <maxim2405@gmail.com> * xtensa-tdep.c (ARG_NOF, ARG_1ST, PS_WOE, PS_EXC, C0_MAXOPDS) diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 672be70..64964e9 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -2024,7 +2024,7 @@ virtual_base_list_aux (struct type *dclass) This routine merely hands off the argument to virtual_base_list_aux() and then copies the result into an array to save space. */ -struct type ** +static struct type ** virtual_base_list (struct type *dclass) { struct vbase *tmp_vbase; @@ -2112,7 +2112,6 @@ virtual_base_list_length_skip_primaries (struct type *dclass) return i; } - /* Return the index (position) of type BASE, which is a virtual base class of DCLASS, in the latter's virtual base list. A return of -1 indicates "not found" or a problem. */ @@ -2120,27 +2119,24 @@ virtual_base_list_length_skip_primaries (struct type *dclass) int virtual_base_index (struct type *base, struct type *dclass) { - struct type *vbase; + struct type *vbase, **vbase_list; int i; if ((TYPE_CODE (dclass) != TYPE_CODE_CLASS) || (TYPE_CODE (base) != TYPE_CODE_CLASS)) return -1; - i = 0; - vbase = virtual_base_list (dclass)[0]; - while (vbase) - { - if (vbase == base) - break; - vbase = virtual_base_list (dclass)[++i]; - } + vbase_list = virtual_base_list (dclass); + for (i = 0, vbase = vbase_list[0]; + vbase != NULL; + vbase = vbase_list[++i]) + if (vbase == base) + break; + xfree (vbase_list); return vbase ? i : -1; } - - /* Return the index (position) of type BASE, which is a virtual base class of DCLASS, in the latter's virtual base list. Skip over all bases that may appear in the virtual base list of the primary base @@ -2151,7 +2147,7 @@ int virtual_base_index_skip_primaries (struct type *base, struct type *dclass) { - struct type *vbase; + struct type *vbase, **vbase_list; int i, j; struct type *primary; @@ -2161,19 +2157,18 @@ virtual_base_index_skip_primaries (struct type *base, primary = TYPE_RUNTIME_PTR (dclass) ? TYPE_PRIMARY_BASE (dclass) : NULL; - j = -1; - i = 0; - vbase = virtual_base_list (dclass)[0]; - while (vbase) + vbase_list = virtual_base_list (dclass); + for (i = 0, j = -1, vbase = vbase_list[0]; + vbase != NULL; + vbase = vbase_list[++i]) { if (!primary || (virtual_base_index_skip_primaries (vbase, primary) < 0)) j++; if (vbase == base) break; - vbase = virtual_base_list (dclass)[++i]; } - + xfree (vbase_list); return vbase ? j : -1; } diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index 8d60894..c397c32 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -1346,8 +1346,6 @@ extern int has_vtable (struct type *); extern struct type *primary_base_class (struct type *); -extern struct type **virtual_base_list (struct type *); - extern int virtual_base_list_length (struct type *); extern int virtual_base_list_length_skip_primaries (struct type *); |