Protected Attributes |
| int | _min |
| | Minimum of range.
|
| int | _max |
| | Maximum of range.
|
Constructors |
| | RangeList (void) |
| | Default constructor (noop)
|
| | RangeList (int min, int max) |
| | Initialize with minimum min and maximum max.
|
| | RangeList (int min, int max, RangeList *p, RangeList *n) |
| | Initialize with minimum min and maximum max and predecessor p and successor n.
|
Access |
| int | min (void) const |
| | Return minimum.
|
| int | max (void) const |
| | Return maximum.
|
| unsigned int | width (void) const |
| | Return width (distance between maximum and minimum)
|
| RangeList * | next (const RangeList *p) const |
| | Return next element (from previous p)
|
| RangeList * | prev (const RangeList *n) const |
| | Return previous element (from next n)
|
Update |
| void | min (int n) |
| | Set minimum to n.
|
| void | max (int n) |
| | Set maximum to n.
|
| void | prevnext (RangeList *p, RangeList *n) |
| | Set previous element to p and next element to n.
|
| void | next (RangeList *o, RangeList *n) |
| | Set next element from o to n.
|
| void | prev (RangeList *o, RangeList *n) |
| | Set previous element from o to n.
|
| void | fix (RangeList *n) |
| | Restore simple link to next element (so that it becomes a true free list)
|
Memory management |
| void | dispose (Space &home, RangeList *p, RangeList *l) |
| | Free memory for all elements between this and l (inclusive)
|
| void | dispose (Space &home, RangeList *l) |
| | Free memory for all elements between this and l (inclusive)
|
| void | dispose (Space &home) |
| | Free memory for this element.
|
| static void * | operator new (size_t s, Space &home) |
| | Allocate memory from space.
|
| static void * | operator new (size_t s, void *p) |
| | Placement new.
|
| static void | operator delete (void *) |
| | No-op (for exceptions)
|
| static void | operator delete (void *, Space &) |
| | No-op (use dispose instead)
|
| static void | operator delete (void *, void *) |
| | No-op (use dispose instead)
|
Lists of ranges (intervals)
Range lists are doubly-linked storing the pointer to both the next and the previous element in a single pointer. That means that the next element is only available when the previous element is supplied as additional information. The same holds true for access to the previous element.