/* DWARF 1 find nearest line (_bfd_dwarf1_find_nearest_line).
- Copyright (C) 1998-2022 Free Software Foundation, Inc.
+ Copyright (C) 1998-2023 Free Software Foundation, Inc.
Written by Gavin Romig-Koch of Cygnus Solutions (gavin@cygnus.com).
bfd_size_type size;
msec = bfd_get_section_by_name (stash->abfd, ".line");
- if (! msec)
+ if (! msec || (msec->flags & SEC_HAS_CONTENTS) == 0)
return false;
size = msec->rawsize ? msec->rawsize : msec->size;
stash->line_section
- = bfd_simple_get_relocated_section_contents
- (stash->abfd, msec, NULL, stash->syms);
+ = bfd_simple_get_relocated_section_contents (stash->abfd, msec, NULL,
+ stash->syms);
if (! stash->line_section)
return false;
return false;
msec = bfd_get_section_by_name (abfd, ".debug");
- if (! msec)
+ if (! msec
+ || (msec->flags & SEC_HAS_CONTENTS) == 0)
/* No dwarf1 info. Note that at this point the stash
has been allocated, but contains zeros, this lets
future calls to this function fail quicker. */
return false;
}
+
+void
+_bfd_dwarf1_cleanup_debug_info (bfd *abfd ATTRIBUTE_UNUSED, void **pinfo)
+{
+ struct dwarf1_debug* stash = *pinfo;
+
+ if (stash == NULL)
+ return;
+
+ free (stash->debug_section);
+ free (stash->line_section);
+}