Blame elf/stringtable_free.c

Packit Service c77dc9
/* String tables for ld.so.cache construction.  Deallocation (for tests only).
Packit Service c77dc9
   Copyright (C) 2020 Free Software Foundation, Inc.
Packit Service c77dc9
   This file is part of the GNU C Library.
Packit Service c77dc9
Packit Service c77dc9
   This program is free software; you can redistribute it and/or modify
Packit Service c77dc9
   it under the terms of the GNU General Public License as published
Packit Service c77dc9
   by the Free Software Foundation; version 2 of the License, or
Packit Service c77dc9
   (at your option) any later version.
Packit Service c77dc9
Packit Service c77dc9
   This program is distributed in the hope that it will be useful,
Packit Service c77dc9
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service c77dc9
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service c77dc9
   GNU General Public License for more details.
Packit Service c77dc9
Packit Service c77dc9
   You should have received a copy of the GNU General Public License
Packit Service c77dc9
   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
Packit Service c77dc9
Packit Service c77dc9
#include <stdlib.h>
Packit Service c77dc9
#include <stringtable.h>
Packit Service c77dc9
Packit Service c77dc9
void
Packit Service c77dc9
stringtable_free (struct stringtable *table)
Packit Service c77dc9
{
Packit Service c77dc9
  for (uint32_t i = 0; i < table->allocated; ++i)
Packit Service c77dc9
    for (struct stringtable_entry *e = table->entries[i]; e != NULL; )
Packit Service c77dc9
      {
Packit Service c77dc9
        struct stringtable_entry *next = e->next;
Packit Service c77dc9
        free (e);
Packit Service c77dc9
        e = next;
Packit Service c77dc9
      }
Packit Service c77dc9
  free (table->entries);
Packit Service c77dc9
  *table = (struct stringtable) { 0, };
Packit Service c77dc9
}