internal virtual RevObject Next() { BlockObjQueue.Block b = head; if (b == null) { return(null); } RevObject c = b.Pop(); if (b.IsEmpty()) { head = b.next; if (head == null) { tail = null; } free.FreeBlock(b); } return(c); }