summaryrefslogtreecommitdiff
path: root/src/libstddjb/genalloc_deepfree.c
blob: 29f1527d2d2000c0f27351ce00e71c8f8219b5d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
/* ISC license. */

#include <sys/types.h>
#include <skalibs/stralloc.h>
#include <skalibs/genalloc.h>

void genalloc_deepfree_size (genalloc *g, freefunc_t_ref f, size_t size)
{
  size_t len = g->len / size ;
  register size_t i = 0 ;
  for (; i < len ; i++) (*f)(g->s + i * size) ;
  stralloc_free(g) ;
}