Be liberal with what you take, just as the usual free() function.
+/**
+ * It's OK to pass a \p NULL pointer to this function.
+ */
void free_format_info(struct format_info *info)
{
int i;
struct format_item *item;
void free_format_info(struct format_info *info)
{
int i;
struct format_item *item;
for (i = 0; (item = info->items[i]); i++) {
if (!item->atom_ptr)
free(item->af.cs.string);
for (i = 0; (item = info->items[i]); i++) {
if (!item->atom_ptr)
free(item->af.cs.string);