apuinfo_list;
static apuinfo_list *head;
-
+static bfd_boolean apuinfo_set;
static void
apuinfo_list_init (void)
{
head = NULL;
+ apuinfo_set = FALSE;
}
static void
char *buffer = NULL;
bfd_size_type largest_input_size = 0;
unsigned i;
- unsigned num_entries;
unsigned long length;
const char *error_message = NULL;
if (length < 20)
goto fail;
+ apuinfo_set = TRUE;
if (largest_input_size < asec->size)
{
if (buffer)
error_message = NULL;
- /* Compute the size of the output section. */
- num_entries = apuinfo_list_length ();
-
- if (num_entries)
+ if (apuinfo_set)
{
+ /* Compute the size of the output section. */
+ unsigned num_entries = apuinfo_list_length ();
+
/* Set the output section size, if it exists. */
asec = bfd_get_section_by_name (abfd, APUINFO_SECTION_NAME);
+
if (asec && ! bfd_set_section_size (abfd, asec, 20 + num_entries * 4))
{
ibfd = abfd;
asection *asec,
bfd_byte *contents ATTRIBUTE_UNUSED)
{
- return (apuinfo_list_length ()
- && strcmp (asec->name, APUINFO_SECTION_NAME) == 0);
+ return apuinfo_set && strcmp (asec->name, APUINFO_SECTION_NAME) == 0;
}
/* Finally we can generate the output section. */
if (asec == NULL)
return;
- if (apuinfo_list_length () == 0)
+ if (!apuinfo_set)
return;
length = asec->size;