This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [rfa:ppc64] Use target in convert_from_func_ptr_addr


On Oct 22,  9:37pm, Andrew Cagney wrote:

> The attached rewrites the PPC64 GNU/Linux convert_from_func_ptr_addr 
> method so that it makes use of the explicit "struct target_ops" 
> parameter  I recently added (previously it was indirectly using 
> current_target).
[...]
> Index: ppc-linux-tdep.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/ppc-linux-tdep.c,v
> retrieving revision 1.44
> diff -u -r1.44 ppc-linux-tdep.c
> --- ppc-linux-tdep.c	22 Oct 2003 23:54:11 -0000	1.44
> +++ ppc-linux-tdep.c	23 Oct 2003 01:32:51 -0000
> @@ -936,14 +936,14 @@
>  					CORE_ADDR addr,
>  					struct target_ops *targ)
>  {
> -  struct obj_section *s;
> -
> -  s = find_pc_section (addr);
> -
> -  /* Check if ADDR points to a function descriptor.  */
> -  if (s && strcmp (s->the_bfd_section->name, ".opd") == 0)
> -    return read_memory_unsigned_integer (addr, 8);
> -
> +  struct section_table *s = target_section_by_addr (targ, addr);
> +  if (s != NULL && s->the_bfd_section != NULL
> +      && strcmp (s->the_bfd_section->name, ".opd") == 0)
> +    {
> +      char desc[8];
> +      target_read (targ, TARGET_OBJECT_MEMORY, NULL, desc, addr, 8);
> +      return extract_unsigned_integer (desc, 8);
> +    }
>    return addr;
>  }

IMO, this version of the code is harder to read than the old version.

Can you explain what using an explicit `struct target_ops'' parameter
buys us?

Kevin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]