mirror of
git://sourceware.org/git/lvm2.git
synced 2025-03-11 20:58:50 +03:00
o pool_free was leaving one block hanging around.
This commit is contained in:
parent
579944d327
commit
252c7708f5
@ -77,7 +77,7 @@ void *pool_alloc_aligned(struct pool *p, size_t s, unsigned alignment)
|
|||||||
} else
|
} else
|
||||||
p->blocks = p->tail = b;
|
p->blocks = p->tail = b;
|
||||||
|
|
||||||
return &b->data;
|
return &b->data[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
void pool_empty(struct pool *p)
|
void pool_empty(struct pool *p)
|
||||||
@ -91,9 +91,9 @@ void pool_free(struct pool *p, void *ptr)
|
|||||||
struct block *b, *prev = NULL;
|
struct block *b, *prev = NULL;
|
||||||
|
|
||||||
for (b = p->blocks; b; b = b->next) {
|
for (b = p->blocks; b; b = b->next) {
|
||||||
prev = b;
|
if ((void *) &b->data[0] == ptr)
|
||||||
if ((void *) &b->data == ptr)
|
|
||||||
break;
|
break;
|
||||||
|
prev = b;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -102,11 +102,6 @@ void pool_free(struct pool *p, void *ptr)
|
|||||||
* pool, or isn't the start of a block.
|
* pool, or isn't the start of a block.
|
||||||
*/
|
*/
|
||||||
assert(b);
|
assert(b);
|
||||||
if (!b) {
|
|
||||||
log_err("pool asked to free a pointer that was not "
|
|
||||||
"allocated from this pool.");
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
_free_blocks(b);
|
_free_blocks(b);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user