[RFC] Eliminate use of deprecated_register_bytes() from remote.c

Daniel Jacobowitz drow@false.org
Wed Apr 27 15:40:00 GMT 2005


On Fri, Apr 15, 2005 at 04:12:12PM -0700, Kevin Buettner wrote:
> On Fri, 15 Apr 2005 17:37:58 -0400
> Daniel Jacobowitz <drow@false.org> wrote:
> 
> > On Fri, Apr 15, 2005 at 02:32:45PM -0700, Kevin Buettner wrote:
> > > This one seems almost obvious, but I'd like someone else to look it
> > > over before I check it in...
> > > 
> > > 	* remote.c (init_remote_state): Eliminate use of
> > > 	deprecated_register_bytes().
> > 
> > I'm pretty sure you need an if (regnum < NUM_REGS) on the second piece.
> 
> I agree that that's the right thing to do, but I'm not convinced that
> will give us behavior equivalent to what we have now.  Consider the
> following comment/code from regcache.c:
> 
>   /* FIXME: cagney/2002-05-22: Should only need to allocate space for
>      the raw registers.  Unfortunately some code still accesses the
>      register array directly using the global registers[].  Until that
>      code has been purged, play safe and over allocating the register
>      buffer.  Ulgh!  */
>   descr->sizeof_raw_registers = descr->sizeof_cooked_registers;
> 
> The ``sizeof_raw_registers'' field is the value returned by
> deprecated_register_bytes().  So, it seems to me that we're presently
> setting rs->sizeof_g_packet to a value that's potentially larger than
> need be.

You are definitely right.  That's an Ulgh indeed.

> I can think of no reason to continue to over-allocate space for g/G
> packets in remote.c so I'm happy with this patch instead (which adds
> the test that you wanted):
> 
> 	* remote.c (init_remote_state): Eliminate use of
> 	deprecated_register_bytes().

This is fine with me.

-- 
Daniel Jacobowitz
CodeSourcery, LLC



More information about the Gdb-patches mailing list