aboutsummaryrefslogtreecommitdiffstats
path: root/src/zunsetup.c
blob: 0af39687c3f29c380d3421aafdf0d10aee248034 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* See LICENSE file for copyright and license details. */
#include "internals.h"


void
zunsetup(void)
{
	size_t i;
	if (libzahl_set_up) {
		libzahl_set_up = 0;
#define X(x, s)\
		free(x->chars);
		LIST_TEMPS;
#undef X
		for (i = BITS_PER_CHAR; i--;)
			free(libzahl_tmp_divmod_ds[i]->chars);

		for (i = sizeof(libzahl_pool) / sizeof(*libzahl_pool); i--;) {
			while (libzahl_pool_n[i]--)
				free(libzahl_pool[i][libzahl_pool_n[i]]);
			free(libzahl_pool[i]);
		}

		free(libzahl_temp_stack);
	}
}