Example #1
0
int tbl_cache_free(tbl_cache_p _tbc)
{
	if(!_tbc)
		return -1;
	
	lock_get(&_tbc->sem);
	
	if(_tbc->dtp)
		tbl_free(_tbc->dtp);
	
	lock_destroy(&_tbc->sem);
	pkg_free(_tbc);

	return 0;
}
Example #2
0
static void
roff_free1(struct roff *r)
{
	struct tbl_node	*tbl;
	struct eqn_node	*e;
	int		 i;

	while (NULL != (tbl = r->first_tbl)) {
		r->first_tbl = tbl->next;
		tbl_free(tbl);
	}

	r->first_tbl = r->last_tbl = r->tbl = NULL;

	while (NULL != (e = r->first_eqn)) {
		r->first_eqn = e->next;
		eqn_free(e);
	}

	r->first_eqn = r->last_eqn = r->eqn = NULL;

	while (r->last)
		roffnode_pop(r);

	roff_freestr(r->strtab);
	roff_freestr(r->xmbtab);

	r->strtab = r->xmbtab = NULL;

	roff_freereg(r->regtab);

	r->regtab = NULL;

	if (r->xtab)
		for (i = 0; i < 128; i++)
			free(r->xtab[i].p);

	free(r->xtab);
	r->xtab = NULL;
}