protected override void InsertItem(FastListNode item, FastListNode prev, FastListNode next) { lock (this) { base.InsertItem(item, prev, next); } }
public virtual void RemoveItem(T item) { Assert.Greater(m_size, 0); Assert.AreSame(this, item.m_list); FastListNode prev = item.m_listPrev; FastListNode next = item.m_listNext; if (prev != null) { prev.m_listNext = next; } else { m_listFirst = next; } if (next != null) { next.m_listPrev = prev; } else { m_listLast = prev; } item.m_listNext = item.m_listPrev = null; item.m_list = null; --m_size; }
public override bool ContainsItem(FastListNode item) { lock (this) { return(base.ContainsItem(item)); } }
protected virtual void InsertItem(FastListNode item, FastListNode prev, FastListNode next) { Assert.IsNull(item.m_list); if (next != null) { next.m_listPrev = item; } else { m_listLast = item; } if (prev != null) { prev.m_listNext = item; } else { m_listFirst = item; } item.m_listPrev = prev; item.m_listNext = next; item.m_list = this; ++m_size; }
public virtual void Clear() { for (FastListNode t = m_listFirst; t != null;) { FastListNode next = t.m_listNext; t.m_listPrev = t.m_listNext = null; t.m_list = null; t = next; } m_listFirst = m_listLast = null; m_size = 0; }
public virtual bool ContainsItem(FastListNode item) { if (item.m_list != this) { return(false); } for (FastListNode t = m_listFirst; t != null; t = t.m_listNext) { if (t == item) { return(true); } } return(false); }
/* For Unit testing */ public void DetachFromList() { m_list = null; m_listPrev = m_listNext = null; }