Return unique_xmalloc_ptr from target_fileio_read_stralloc

Change target_fileio_read_stralloc to return unique_xmalloc_ptr and
fix up the callers.  This removes a number of cleanups.

ChangeLog
2017-10-16  Tom Tromey  <tom@tromey.com>

	* linux-tdep.c (linux_info_proc, linux_find_memory_regions_full)
	(linux_fill_prpsinfo, linux_vsyscall_range_raw): Update.
	* target.c (target_fileio_read_stralloc): Update.
	* sparc64-tdep.c (adi_is_addr_mapped): Update.
	* target.h (target_fileio_read_stralloc): Return
	unique_xmalloc_ptr.
This commit is contained in:
Tom Tromey 2017-10-12 18:20:09 -06:00
parent b7b030adc4
commit 87028b8739
5 changed files with 64 additions and 86 deletions

View file

@ -311,13 +311,13 @@ adi_is_addr_mapped (CORE_ADDR vaddr, size_t cnt)
pid_t pid = ptid_get_pid (inferior_ptid);
snprintf (filename, sizeof filename, "/proc/%ld/adi/maps", (long) pid);
char *data = target_fileio_read_stralloc (NULL, filename);
gdb::unique_xmalloc_ptr<char> data
= target_fileio_read_stralloc (NULL, filename);
if (data)
{
struct cleanup *cleanup = make_cleanup (xfree, data);
adi_stat_t adi_stat = get_adi_info (pid);
char *line;
for (line = strtok (data, "\n"); line; line = strtok (NULL, "\n"))
for (line = strtok (data.get (), "\n"); line; line = strtok (NULL, "\n"))
{
ULONGEST addr, endaddr;
@ -327,13 +327,9 @@ adi_is_addr_mapped (CORE_ADDR vaddr, size_t cnt)
&& ((vaddr + i) * adi_stat.blksize) < endaddr)
{
if (++i == cnt)
{
do_cleanups (cleanup);
return true;
}
return true;
}
}
do_cleanups (cleanup);
}
else
warning (_("unable to open /proc file '%s'"), filename);