Beispiel #1
0
			public void UnlinkHeapFromAvailable(GC.GCHeap* pHeap)
			{
				if (pHeap->AllocatorPrev == null) AvailableFirst = pHeap->AllocatorNext;
				else pHeap->AllocatorPrev->AllocatorNext = pHeap->AllocatorNext;
				if (pHeap->AllocatorNext == null) AvailableLast = pHeap->AllocatorPrev;
				else pHeap->AllocatorNext->AllocatorPrev = pHeap->AllocatorPrev;
			}
Beispiel #2
0
			public void UnlinkHeapFromAllocated(GC.GCHeap* pHeap)
			{
				if (pHeap->AllocatorPrev == null) AllocatedFirst = pHeap->AllocatorNext;
				else pHeap->AllocatorPrev->AllocatorNext = pHeap->AllocatorNext;
				if (pHeap->AllocatorNext == null) AllocatedLast = pHeap->AllocatorPrev;
				else pHeap->AllocatorNext->AllocatorPrev = pHeap->AllocatorPrev;
			}
Beispiel #3
0
			public void LinkHeapToAvailable(GC.GCHeap* pHeap)
			{
				if (AvailableLast == null)
				{
					pHeap->AllocatorPrev = null;
					pHeap->AllocatorNext = null;
					AvailableFirst = pHeap;
					AvailableLast = pHeap;
				}
				else
				{
					AvailableLast->AllocatorNext = pHeap;
					pHeap->AllocatorPrev = AvailableLast;
					pHeap->AllocatorNext = null;
					AvailableLast = pHeap;
				}
			}
Beispiel #4
0
			public void LinkHeapToAllocated(GC.GCHeap* pHeap)
			{
				if (AllocatedLast == null)
				{
					pHeap->AllocatorPrev = null;
					pHeap->AllocatorNext = null;
					AllocatedFirst = pHeap;
					AllocatedLast = pHeap;
				}
				else
				{
					AllocatedLast->AllocatorNext = pHeap;
					pHeap->AllocatorPrev = AllocatedLast;
					pHeap->AllocatorNext = null;
					AllocatedLast = pHeap;
				}
			}