mirror of
https://github.com/espressif/tlsf.git
synced 2025-11-16 12:34:46 +00:00
Merge branch 'feat/add-return-value-to-walker' into 'idf'
change(tlsf): Add return value to tlsf_walker See merge request espressif/tlsf!9
This commit is contained in:
12
tlsf.c
12
tlsf.c
@@ -659,7 +659,7 @@ typedef struct integrity_t
|
||||
|
||||
#define tlsf_insist(x) { if (!(x)) { status--; } }
|
||||
|
||||
static void integrity_walker(void* ptr, size_t size, int used, void* user)
|
||||
static bool integrity_walker(void* ptr, size_t size, int used, void* user)
|
||||
{
|
||||
block_header_t* block = block_from_ptr(ptr);
|
||||
integrity_t* integ = tlsf_cast(integrity_t*, user);
|
||||
@@ -691,6 +691,8 @@ static void integrity_walker(void* ptr, size_t size, int used, void* user)
|
||||
|
||||
integ->prev_status = this_status;
|
||||
integ->status += status;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -750,10 +752,11 @@ int tlsf_check(tlsf_t tlsf)
|
||||
|
||||
#undef tlsf_insist
|
||||
|
||||
static void default_walker(void* ptr, size_t size, int used, void* user)
|
||||
static bool default_walker(void* ptr, size_t size, int used, void* user)
|
||||
{
|
||||
(void)user;
|
||||
printf("\t%p %s size: %x (%p)\n", ptr, used ? "used" : "free", (unsigned int)size, block_from_ptr(ptr));
|
||||
return true;
|
||||
}
|
||||
|
||||
void tlsf_walk_pool(pool_t pool, tlsf_walker walker, void* user)
|
||||
@@ -762,9 +765,10 @@ void tlsf_walk_pool(pool_t pool, tlsf_walker walker, void* user)
|
||||
block_header_t* block =
|
||||
offset_to_block(pool, -(int)block_header_overhead);
|
||||
|
||||
while (block && !block_is_last(block))
|
||||
bool ret_val = true;
|
||||
while (block && !block_is_last(block) && ret_val == true)
|
||||
{
|
||||
pool_walker(
|
||||
ret_val = pool_walker(
|
||||
block_to_ptr(block),
|
||||
block_size(block),
|
||||
!block_is_free(block),
|
||||
|
||||
2
tlsf.h
2
tlsf.h
@@ -59,7 +59,7 @@ size_t tlsf_alloc_overhead(void);
|
||||
size_t tlsf_fit_size(tlsf_t tlsf, size_t size);
|
||||
|
||||
/* Debugging. */
|
||||
typedef void (*tlsf_walker)(void* ptr, size_t size, int used, void* user);
|
||||
typedef bool (*tlsf_walker)(void* ptr, size_t size, int used, void* user);
|
||||
void tlsf_walk_pool(pool_t pool, tlsf_walker walker, void* user);
|
||||
/* Returns nonzero if any internal consistency check fails. */
|
||||
int tlsf_check(tlsf_t tlsf);
|
||||
|
||||
Reference in New Issue
Block a user