+inline void *dlist::get_prev(void *item)
+{
+ return ((dlink *)(((char *)item)+loffset))->prev;
+}
+
+inline void *dlist::get_next(void *item)
+{
+ return ((dlink *)(((char *)item)+loffset))->next;
+}
+
+
+inline dlink *dlist::get_link(void *item)
+{
+ return (dlink *)(((char *)item)+loffset);
+}
+
+
+
+inline bool dlist::empty() const
+{
+ return head == NULL;
+}
+
+inline int dlist::size() const
+{
+ return num_items;
+}
+
+
+
+inline void * dlist::first() const