Remove weak declaration of free from <inline-hashtab.h>
authorFlorian Weimer <fweimer@redhat.com>
Sat, 8 Feb 2020 15:15:09 +0000 (16:15 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Sat, 15 Feb 2020 10:01:20 +0000 (11:01 +0100)
elf/dl-minimal.c provides a definition of free, so the function
pointer is always non-null, even before the final relocation
of the loader.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
include/inline-hashtab.h

index d25bb95..3c09978 100644 (file)
@@ -25,8 +25,6 @@
 #ifndef INLINE_HASHTAB_H
 # define INLINE_HASHTAB_H 1
 
-extern void weak_function free (void *ptr);
-
 struct hashtab
 {
   /* Table itself.  */
@@ -56,8 +54,7 @@ htab_create (void)
   ht->free = free;
   if (! ht->entries)
     {
-      if (ht->free)
-       ht->free (ht);
+      free (ht);
       return NULL;
     }
 
@@ -78,8 +75,7 @@ htab_delete (struct hashtab *htab)
   for (i = htab->size - 1; i >= 0; i--)
     free (htab->entries[i]);
 
-  if (htab->free)
-    htab->free (htab->entries);
+  htab->free (htab->entries);
   free (htab);
 }
 
@@ -167,8 +163,7 @@ htab_expand (struct hashtab *htab, int (*hash_fn) (void *))
      allocated early as long as there's no corresponding free(), but
      this isn't so much memory as to be significant.  */
 
-  if (htab->free)
-    htab->free (oentries);
+  htab->free (oentries);
 
   /* Use the free() corresponding to the malloc() above to free this
      up.  */