+struct PList {
+ /**
+ * The obstack used for all allocations.
+ */
+ struct obstack obst;
+ /**
+ * First element in the list.
+ */
+ PListElement* firstElement;
+ /**
+ * Last element in the list.
+ */
+ PListElement* lastElement;
+ /**
+ * Current number of elements in the list.
+ */
+ int elementCount;
+ /**
+ * First element in the free list.
+ * Please note that the free list is a single linked list and all back
+ * references are invalid.
+ */
+ PListElement* firstFreeElement;
+};