rem: if (cc->start_off >= offset+delta && cc->end_off <= offset) {
add: if (cc->start_off > offset+delta && cc->end_off < offset) {
context: correct_cache(TC_HANDLE_T h, unsigned int offset, int delta){	int i;		/* needs to be signed because deleting first			   chain can make it drop to -1 */	if (!delta)		return 1;	for (i = 0; i < h->cache_num_chains; i++) {		struct chain_cache *cc = &h->cache_chain_heads[i];		if (delta < 0) {			/* take care about deleted chains */			if (cc->start_off >= offset+delta			    && cc->end_off <= offset) {				/* this chain is within the deleted range,				 * let's remove it from the cache */				void *start;				unsigned int size;				h->cache_num_chains--;				if (i+1 >= h->cache_num_chains)					continue;				start = &h->cache_chain_heads[i+1];				size = (h->cache_num_chains-i)					* sizeof(struct chain_cache);				memmove(cc, start, size);				/* iterate over same index again, since				 * it is now a different chain */				i--;				continue;			}		}		if (cc->start_off > offset)			cc->start_off += delta;		if (cc->end_off >= offset)			cc->end_off += delta;	}	/* HW_FIXME: sorting might be needed, but just in case a new chain was	 * added */	return 1;}