if (data->library_list != NULL)
return data->library_list;
- gdb::unique_xmalloc_ptr<char> library_document
- = target_read_stralloc (¤t_target, TARGET_OBJECT_LIBRARIES_AIX,
+ gdb::optional<gdb::char_vector> library_document
+ = target_read_stralloc (current_top_target (), TARGET_OBJECT_LIBRARIES_AIX,
NULL);
- if (library_document == NULL && warning_msg != NULL)
+ if (!library_document && warning_msg != NULL)
{
warning (_("%s (failed to read TARGET_OBJECT_LIBRARIES_AIX)"),
warning_msg);
if (solib_aix_debug)
fprintf_unfiltered (gdb_stdlog,
"DEBUG: TARGET_OBJECT_LIBRARIES_AIX = \n%s\n",
- library_document.get ());
+ library_document->data ());
- data->library_list = solib_aix_parse_libraries (library_document.get ());
+ data->library_list = solib_aix_parse_libraries (library_document->data ());
if (data->library_list == NULL && warning_msg != NULL)
{
warning (_("%s (missing XML support?)"), warning_msg);
The resulting array is computed on the heap and must be
deallocated after use. */
-static struct section_offsets *
+static gdb::unique_xmalloc_ptr<struct section_offsets>
solib_aix_get_section_offsets (struct objfile *objfile,
lm_info_aix *info)
{
- struct section_offsets *offsets;
bfd *abfd = objfile->obfd;
- offsets = XCNEWVEC (struct section_offsets, objfile->num_sections);
+ gdb::unique_xmalloc_ptr<struct section_offsets> offsets
+ (XCNEWVEC (struct section_offsets, objfile->num_sections));
/* .text */
if (symfile_objfile != NULL)
{
- struct section_offsets *offsets
+ gdb::unique_xmalloc_ptr<struct section_offsets> offsets
= solib_aix_get_section_offsets (symfile_objfile, exec_info);
- struct cleanup *cleanup = make_cleanup (xfree, offsets);
- objfile_relocate (symfile_objfile, offsets);
- do_cleanups (cleanup);
+ objfile_relocate (symfile_objfile, offsets.get ());
}
}