(root)/
glibc-2.38/
elf/
stringtable_free.c
       1  /* String tables for ld.so.cache construction.  Deallocation (for tests only).
       2     Copyright (C) 2020-2023 Free Software Foundation, Inc.
       3     This file is part of the GNU C Library.
       4  
       5     This program is free software; you can redistribute it and/or modify
       6     it under the terms of the GNU General Public License as published
       7     by the Free Software Foundation; version 2 of the License, or
       8     (at your option) any later version.
       9  
      10     This program is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU General Public License for more details.
      14  
      15     You should have received a copy of the GNU General Public License
      16     along with this program; if not, see <https://www.gnu.org/licenses/>.  */
      17  
      18  #include <stdlib.h>
      19  #include <stringtable.h>
      20  
      21  void
      22  stringtable_free (struct stringtable *table)
      23  {
      24    for (uint32_t i = 0; i < table->allocated; ++i)
      25      for (struct stringtable_entry *e = table->entries[i]; e != NULL; )
      26        {
      27          struct stringtable_entry *next = e->next;
      28          free (e);
      29          e = next;
      30        }
      31    free (table->entries);
      32    *table = (struct stringtable) { 0, };
      33  }