aboutsummaryrefslogtreecommitdiff
path: root/gdb/linux-nat.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-11-22 23:37:38 -0700
committerTom Tromey <tom@tromey.com>2018-03-07 15:36:28 -0700
commite0d3522b888033febd153a4a7d3b7c5c13641f09 (patch)
tree9c5c11152ba3b7202fac5dba1a9f21a35c85d3d5 /gdb/linux-nat.c
parentd6ab64818b9d212691c200c292dc0f18d193598c (diff)
downloadbinutils-e0d3522b888033febd153a4a7d3b7c5c13641f09.zip
binutils-e0d3522b888033febd153a4a7d3b7c5c13641f09.tar.gz
binutils-e0d3522b888033febd153a4a7d3b7c5c13641f09.tar.bz2
Return gdb::optional<std::string> from target_fileio_readlink
This changes to_fileio_readlink and target_fileio_readlink to return a gdb::optional<std::sring>, and then fixes up the callers and implementations. This allows the removal of some cleanups. Regression tested by the buildbot. gdb/ChangeLog 2018-03-07 Tom Tromey <tom@tromey.com> * linux-tdep.c (linux_info_proc): Update. * target.h (struct target_ops) <to_fileio_readlink>: Return optional<string>. (target_fileio_readlink): Return optional<string>. * remote.c (remote_hostio_readlink): Return optional<string>. * inf-child.c (inf_child_fileio_readlink): Return optional<string>. * target.c (target_fileio_readlink): Return optional<string>.
Diffstat (limited to 'gdb/linux-nat.c')
-rw-r--r--gdb/linux-nat.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index cc930c6..1bbad7b 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -4709,27 +4709,23 @@ linux_nat_fileio_open (struct target_ops *self,
/* Implementation of to_fileio_readlink. */
-static char *
+static gdb::optional<std::string>
linux_nat_fileio_readlink (struct target_ops *self,
struct inferior *inf, const char *filename,
int *target_errno)
{
char buf[PATH_MAX];
int len;
- char *ret;
len = linux_mntns_readlink (linux_nat_fileio_pid_of (inf),
filename, buf, sizeof (buf));
if (len < 0)
{
*target_errno = host_to_fileio_error (errno);
- return NULL;
+ return {};
}
- ret = (char *) xmalloc (len + 1);
- memcpy (ret, buf, len);
- ret[len] = '\0';
- return ret;
+ return std::string (buf, len);
}
/* Implementation of to_fileio_unlink. */