int i; LHASH_NODE *a,*n;   for (i=lh->num_nodes-1; i>=0; i--) { a=lh->b[i]; while (a != NULL) {  n=a->next; func(a->data,arg); a=n; } }
doall_util_fn(lh, 1, (LHASH_DOALL_FN_TYPE)NULL, func, arg);
void lh_doall_arg(LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, const void *arg)	{	int i;	LHASH_NODE *a,*n;	/* reverse the order so we search from 'top to bottom'	 * We were having memory leaks otherwise */	for (i=lh->num_nodes-1; i>=0; i--)		{		a=lh->b[i];		while (a != NULL)			{			/* 28/05/91 - eay - n added so items can be deleted			 * via lh_doall */			n=a->next;			func(a->data,arg);			a=n;			}		}	}