const char * dollar;
const char * dot;
- if (!seg)
- return concat (base_name, NULL);
-
- name = bfd_section_name (seg);
-
- if (name == NULL || *name == 0)
- return concat (base_name, NULL);
+ if (!seg
+ || (name = bfd_section_name (seg)) == NULL
+ || *name == 0)
+ return notes_strdup (base_name);
dollar = strchr (name, '$');
dot = strchr (name + 1, '.');
{
if (!strcmp (base_name, ".eh_frame_entry")
&& strcmp (name, ".text") != 0)
- return concat (base_name, ".", name, NULL);
+ return notes_concat (base_name, ".", name, NULL);
name = "";
}
else
name = dollar;
- return concat (base_name, name, NULL);
+ return notes_concat (base_name, name, NULL);
}
/* Allocate a dwcfi_seg_list structure. */
{
struct dwcfi_seg_list *r;
- r = (struct dwcfi_seg_list *)
- xmalloc (sizeof (struct dwcfi_seg_list) + strlen (name));
+ r = notes_alloc (sizeof (*r) + strlen (name));
r->seg = seg;
r->subseg = subseg;
r->seg_name = name;
str_hash_insert (dwcfi_hash, item->seg_name, item, 0);
}
else
- free (name);
+ notes_free (name);
return item;
}
for (fde = all_fde_data; fde ; fde = fde->next)
SET_HANDLED (fde, 0);
}
+ if (dwcfi_hash)
+ htab_delete (dwcfi_hash);
}
#else /* TARGET_USE_CFIPOP */