mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-23 13:21:43 +08:00
2009-02-27 Phil Muldoon <pmuldoon@redhat.com>
* valprint.c (read_string): Rework clean-up logic. Use free_current_contents to clean-up buffer.
This commit is contained in:
parent
5b9c60272e
commit
b5096abe11
@ -1,3 +1,8 @@
|
||||
2009-02-27 Phil Muldoon <pmuldoon@redhat.com>
|
||||
|
||||
* valprint.c (read_string): Rework clean-up logic. Use
|
||||
free_current_contents to clean-up buffer.
|
||||
|
||||
2009-02-27 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* MAINTAINERS: Update e-mail address.
|
||||
|
@ -1226,13 +1226,14 @@ read_string (CORE_ADDR addr, int len, int width, unsigned int fetchlimit,
|
||||
some error, such as bumping into the end of the address space. */
|
||||
|
||||
found_nul = 0;
|
||||
old_chain = make_cleanup (null_cleanup, 0);
|
||||
*buffer = NULL;
|
||||
|
||||
old_chain = make_cleanup (free_current_contents, buffer);
|
||||
|
||||
if (len > 0)
|
||||
{
|
||||
*buffer = (gdb_byte *) xmalloc (len * width);
|
||||
bufptr = *buffer;
|
||||
old_chain = make_cleanup (xfree, *buffer);
|
||||
|
||||
nfetch = partial_memory_read (addr, bufptr, len * width, &errcode)
|
||||
/ width;
|
||||
@ -1243,8 +1244,6 @@ read_string (CORE_ADDR addr, int len, int width, unsigned int fetchlimit,
|
||||
{
|
||||
unsigned long bufsize = 0;
|
||||
|
||||
*buffer = NULL;
|
||||
|
||||
do
|
||||
{
|
||||
QUIT;
|
||||
@ -1253,13 +1252,9 @@ read_string (CORE_ADDR addr, int len, int width, unsigned int fetchlimit,
|
||||
if (*buffer == NULL)
|
||||
*buffer = (gdb_byte *) xmalloc (nfetch * width);
|
||||
else
|
||||
{
|
||||
discard_cleanups (old_chain);
|
||||
*buffer = (gdb_byte *) xrealloc (*buffer,
|
||||
(nfetch + bufsize) * width);
|
||||
}
|
||||
*buffer = (gdb_byte *) xrealloc (*buffer,
|
||||
(nfetch + bufsize) * width);
|
||||
|
||||
old_chain = make_cleanup (xfree, *buffer);
|
||||
bufptr = *buffer + bufsize * width;
|
||||
bufsize += nfetch;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user