} else { 
} else 
static void sub_remove(struct idr *idp, int shift, int id){	struct idr_layer *p = idp->top;	struct idr_layer **pa[MAX_LEVEL];	struct idr_layer ***paa = &pa[0];	int n;	*paa = NULL;	*++paa = &idp->top;	while ((shift > 0) && p) {		n = (id >> shift) & IDR_MASK;		__clear_bit(n, &p->bitmap);		*++paa = &p->ary[n];		p = p->ary[n];		shift -= IDR_BITS;	}	n = id & IDR_MASK;	if (likely(p != NULL && test_bit(n, &p->bitmap))){		__clear_bit(n, &p->bitmap);		p->ary[n] = NULL;		while(*paa && ! --((**paa)->count)){			free_layer(idp, **paa);			**paa-- = NULL;		}		if ( ! *paa )			idp->layers = 0;	} else {		idr_remove_warning(id);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e15ae2dd3e436552293e122a5163019e7a0fa450/idr.c/clean/lib/idr.c