diff options
author | Tom Tromey <tom@tromey.com> | 2017-11-22 23:37:38 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-03-07 15:36:28 -0700 |
commit | e0d3522b888033febd153a4a7d3b7c5c13641f09 (patch) | |
tree | 9c5c11152ba3b7202fac5dba1a9f21a35c85d3d5 /gdb/linux-nat.c | |
parent | d6ab64818b9d212691c200c292dc0f18d193598c (diff) | |
download | gdb-e0d3522b888033febd153a4a7d3b7c5c13641f09.zip gdb-e0d3522b888033febd153a4a7d3b7c5c13641f09.tar.gz gdb-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.c | 10 |
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. */ |