rem: if (valid_rect(firstRect));
add: if (valid_rect(firstRect))
context: r_or(long top, long bottom, BRegion *first, BRegion *second, BRegion *dest, long *index1, long *index2){	PRINT(("%s\n", __PRETTY_FUNCTION__));	long i1 = *index1;	long i2 = *index2;		if (first->count <= i1) {		if (second->count > i2) {			clipping_rect secondRect = second->data[i2];					secondRect.top = max_c(secondRect.top, top);			secondRect.bottom = min_c(secondRect.bottom, bottom);						if (valid_rect(secondRect))				dest->_AddRect(secondRect);			if (second->data[i2].bottom <= bottom)				i2++;	 	}	 		 } else if (second->count <= i2) {	 	 	clipping_rect firstRect = first->data[i1];	 		 	firstRect.top = max_c(firstRect.top, top);	 	firstRect.bottom = min_c(firstRect.bottom, bottom);	 		 	if (valid_rect(firstRect));	 		dest->_AddRect(firstRect);	 	if (first->data[i1].bottom <= bottom)	 		i1++;	 			 } else {	 	clipping_rect firstRect = first->data[i1];	 	clipping_rect secondRect = second->data[i2];	 		 	firstRect.top = max_c(firstRect.top, top);	 	firstRect.bottom = min_c(firstRect.bottom, bottom);	 		 	secondRect.top = max_c(secondRect.top, top);		secondRect.bottom = min_c(secondRect.bottom, bottom);	 		 	if (valid_rect(sect_rect(firstRect, secondRect)))	 		dest->_AddRect(union_rect(firstRect, secondRect));	 		 	else {	 		if (valid_rect(firstRect))	 			dest->_AddRect(firstRect);	 		if (valid_rect(secondRect))	 			dest->_AddRect(secondRect);	 	}	 			 	if (first->data[i1].bottom <= bottom)	 		i1++;	 	if (second->data[i2].bottom <= bottom)			i2++;	}			*index1 = i1;	*index2 = i2;    }