Пример #1
0
 protected override void InsertItem(FastListNode item, FastListNode prev, FastListNode next)
 {
     lock (this)
     {
         base.InsertItem(item, prev, next);
     }
 }
Пример #2
0
        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;
        }
Пример #3
0
 public override bool ContainsItem(FastListNode item)
 {
     lock (this)
     {
         return(base.ContainsItem(item));
     }
 }
Пример #4
0
        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;
        }
Пример #5
0
        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;
        }
Пример #6
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);
        }
Пример #7
0
 /* For Unit testing */
 public void DetachFromList()
 {
     m_list     = null;
     m_listPrev = m_listNext = null;
 }