/// <summary> /// Moves a node from active to reserve and cleans list references for node /// </summary> /// <param name="pNode"></param> protected void BaseRemove(DLink pNode) { Debug.Assert(pNode != null); // Update list pointers to remove pNode from list DLink.RemoveFromList(ref pActive, pNode); // Remove list references in removed node pNode.ClearLinks(); // Return pNode to pReserve list DLink.AddToFront(ref pReserve, pNode); // stats update this.activeNodeNum--; this.reserveNodeNum++; }