Return unique_xmalloc_ptr from target_read_stralloc

This changes target_read_stralloc to return a unique_xmalloc_ptr, and
then fixes all the callers.  unique_xmalloc_ptr is used, rather than
std::string, because target_read_stralloc gives a special meaning to a
NULL return.

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

	* xml-syscall.c (xml_init_syscalls_info): Update.
	* xml-support.c (xinclude_start_include): Update.
	(xml_fetch_content_from_file): Return unique_xmalloc_ptr.
	* xml-support.h (xml_fetch_another): Return unique_xmalloc_ptr.
	(xml_fetch_content_from_file): Likewise.
	* osdata.c (get_osdata): Update.
	* target.h (target_read_stralloc, target_get_osdata): Return
	unique_xmalloc_ptr.
	* solib-aix.c (solib_aix_get_library_list): Update.
	* solib-target.c (solib_target_current_sos): Update.
	* solib-svr4.c (svr4_current_sos_via_xfer_libraries): Update.
	* xml-tdesc.c (fetch_available_features_from_target): Update.
	(target_fetch_description_xml): Update.
	(file_read_description_xml): Update.
	* remote.c (remote_get_threads_with_qxfer, remote_memory_map)
	(remote_traceframe_info, btrace_read_config, remote_read_btrace)
	(remote_pid_to_exec_file): Update.
	* target.c (target_read_stralloc): Return unique_xmalloc_ptr.
	(target_get_osdata): Likewise.
This commit is contained in:
Tom Tromey 2017-10-12 16:48:35 -06:00
parent b80406accc
commit b7b030adc4
12 changed files with 102 additions and 168 deletions

View file

@ -353,14 +353,13 @@ extern LONGEST target_read_alloc (struct target_ops *ops,
const char *annex, gdb_byte **buf_p);
/* Read OBJECT/ANNEX using OPS. The result is NUL-terminated and
returned as a string, allocated using xmalloc. If an error occurs
or the transfer is unsupported, NULL is returned. Empty objects
are returned as allocated but empty strings. A warning is issued
if the result contains any embedded NUL bytes. */
returned as a string. If an error occurs or the transfer is
unsupported, NULL is returned. Empty objects are returned as
allocated but empty strings. A warning is issued if the result
contains any embedded NUL bytes. */
extern char *target_read_stralloc (struct target_ops *ops,
enum target_object object,
const char *annex);
extern gdb::unique_xmalloc_ptr<char> target_read_stralloc
(struct target_ops *ops, enum target_object object, const char *annex);
/* See target_ops->to_xfer_partial. */
extern target_xfer_partial_ftype target_xfer_partial;
@ -2396,12 +2395,12 @@ extern struct target_ops *find_target_beneath (struct target_ops *);
struct target_ops *find_target_at (enum strata stratum);
/* Read OS data object of type TYPE from the target, and return it in
XML format. The result is NUL-terminated and returned as a string,
allocated using xmalloc. If an error occurs or the transfer is
unsupported, NULL is returned. Empty objects are returned as
allocated but empty strings. */
XML format. The result is NUL-terminated and returned as a string.
If an error occurs or the transfer is unsupported, NULL is
returned. Empty objects are returned as allocated but empty
strings. */
extern char *target_get_osdata (const char *type);
extern gdb::unique_xmalloc_ptr<char> target_get_osdata (const char *type);
/* Stuff that should be shared among the various remote targets. */