System.Web.Caching.CacheItemPriorityQueue.BubbleDown C# (CSharp) Method

BubbleDown() private method

private BubbleDown ( System.Web.Caching.CacheItem heap ) : void
heap System.Web.Caching.CacheItem
return void
		void BubbleDown (CacheItem[] heap)
		{
			int index = 0;
			int left = 1;
			int right = 2;
			CacheItem item = heap [0];
			int selected = (right < heapCount && heap [right].ExpiresAt < heap [left].ExpiresAt) ? 2 : 1;

			while (selected < heapCount && heap [selected].ExpiresAt < item.ExpiresAt) {
				heap [index] = heap [selected];
				index = selected;
				left = (index << 1) + 1;
				right = left + 1;
				selected = right < heapCount && heap [right].ExpiresAt < heap [left].ExpiresAt ? right : left;
			}
			heap [index] = item;
		}