diff options
author | David Taylor <taylor@redhat.com> | 1998-12-28 22:30:59 +0000 |
---|---|---|
committer | David Taylor <taylor@redhat.com> | 1998-12-28 22:30:59 +0000 |
commit | d6fdf61c78fbce1dad62cd1022e606fdaaad4202 (patch) | |
tree | 004e1094a085805bac609a27959f1f8d19597031 /gdb/values.c | |
parent | 4b68b83dc064a39731ee8144dbfa64c5e073f003 (diff) | |
download | binutils-gdb-d6fdf61c78fbce1dad62cd1022e606fdaaad4202.tar.gz |
revert change 1.104 --> 1.105. sigh. this reversal breaks 18470. double
sigh. this is to 'fix' a conflict with hp merge changes that are about
to go in.
Diffstat (limited to 'gdb/values.c')
-rw-r--r-- | gdb/values.c | 34 |
1 files changed, 9 insertions, 25 deletions
diff --git a/gdb/values.c b/gdb/values.c index 9ddf159d00d..db6f204af9a 100644 --- a/gdb/values.c +++ b/gdb/values.c @@ -910,31 +910,15 @@ value_virtual_fn_field (arg1p, f, j, type, offset) /* The virtual function table is now an array of structures which have the form { int16 offset, delta; void *pfn; }. */ - vtbl = value_primitive_field (arg1, 0, TYPE_VPTR_FIELDNO (context), - TYPE_VPTR_BASETYPE (context)); - - /* With older versions of g++, the vtbl field pointed to an array - of structures. Nowadays it points directly to the structure. */ - if (TYPE_CODE (VALUE_TYPE (vtbl)) == TYPE_CODE_PTR - && TYPE_CODE (TYPE_TARGET_TYPE (VALUE_TYPE (vtbl))) == TYPE_CODE_ARRAY) - { - /* Handle the case where the vtbl field points to an - array of structures. */ - vtbl = value_ind (vtbl); - - /* Index into the virtual function table. This is hard-coded because - looking up a field is not cheap, and it may be important to save - time, e.g. if the user has set a conditional breakpoint calling - a virtual function. */ - entry = value_subscript (vtbl, vi); - } - else - { - /* Handle the case where the vtbl field points directly to a structure. */ - vtbl = value_add (vtbl, vi); - entry = value_ind (vtbl); - } - + vtbl = value_ind (value_primitive_field (arg1, 0, + TYPE_VPTR_FIELDNO (context), + TYPE_VPTR_BASETYPE (context))); + + /* Index into the virtual function table. This is hard-coded because + looking up a field is not cheap, and it may be important to save + time, e.g. if the user has set a conditional breakpoint calling + a virtual function. */ + entry = value_subscript (vtbl, vi); entry_type = check_typedef (VALUE_TYPE (entry)); if (TYPE_CODE (entry_type) == TYPE_CODE_STRUCT) |