Now that all callers use the file_reader_t overload of parse_smaps_data,
the legacy interface taking a raw buffer and filename separately is no
longer needed.
Fold its implementation into the file_reader_t version and remove the
obsolete wrapper. This also simplifies the implementation by using the
file_reader_t accessors directly.
Reviewed-By: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
Reviewed-By: Luis Machado <luis.machado.foss@gmail.com>
---
gdb/linux-tdep.c | 30 ++++++++++++------------------
1 file changed, 12 insertions(+), 18 deletions(-)
@@ -1582,18 +1582,17 @@ parse_smaps_key_value (const char *keyword, const char *line,
/* Helper function to parse the contents of /proc/<pid>/smaps into a data
structure, for easy access.
- DATA is the contents of the smaps file. The parsed contents are stored
- into the SMAPS vector. */
+ FREADER is a wrapper around the contents of the smaps file.
+ The parsed contents are stored into the SMAPS vector. */
static std::vector<struct smaps_data>
-parse_smaps_data (const char *data,
- const std::string &maps_filename)
+parse_smaps_data (const file_reader_t<char> &freader)
{
char *line, *t;
- gdb_assert (data != nullptr);
+ gdb_assert (freader);
- line = strtok_r ((char *) data, "\n", &t);
+ line = strtok_r (freader.data (), "\n", &t);
std::vector<struct smaps_data> smaps;
@@ -1649,8 +1648,8 @@ parse_smaps_data (const char *data,
if (sscanf (line, "%64s", keyword) != 1)
{
- warning (_("Error parsing {s,}maps file '%s'"),
- maps_filename.c_str ());
+ warning (_("Error parsing keyword in {s,}maps file '%s'"),
+ freader.c_filepath ());
break;
}
@@ -1664,12 +1663,12 @@ parse_smaps_data (const char *data,
decode_vmflags (line, &v);
if (parse_smaps_key_value (keyword, line, "Rss:",
- maps_filename,
+ freader.filepath (),
&rss))
continue;
if (parse_smaps_key_value (keyword, line, "Swap:",
- maps_filename,
+ freader.filepath (),
&swap))
continue;
@@ -1680,8 +1679,9 @@ parse_smaps_data (const char *data,
if (sscanf (line, "%*s%lu", &number) != 1)
{
- warning (_("Error parsing {s,}maps file '%s' number"),
- maps_filename.c_str ());
+ warning (_("Error parsing numeric value associated with "
+ "key '%s' in {s,}maps file '%s'"),
+ keyword, freader.c_filepath ());
break;
}
if (number > 0)
@@ -1731,12 +1731,6 @@ parse_smaps_data (const char *data,
return smaps;
}
-static std::vector<struct smaps_data>
-parse_smaps_data (const file_reader_t<char> &freader)
-{
- return parse_smaps_data (freader.data (), freader.filepath ());
-}
-
/* Helper that checks if an address is in a memory tag page for a live
process. */