12345678910111213141516171819202122232425 |
- #include "private.h"
- /*--------------------------------------------------------- */
- lub_heap_block_t *
- lub_heap_block_getprevious(lub_heap_block_t *this)
- {
- lub_heap_block_t *result = NULL;
- /* only go back if this is not the first block in the segment */
- if(0 == this->alloc.tag.segment)
- {
- /* get the tag from the previous block */
- lub_heap_tag_t *tag = &(&this->alloc.tag)[-1];
-
- /* get a pointer to the previous block
- * +1 required to account for header tag
- */
- tag = &tag[1-tag->words];
-
- /* now point to the start of the previous block */
- result = (lub_heap_block_t *)tag;
- }
- return result;
- }
- /*--------------------------------------------------------- */
|