From b6d55a917ef8502482031e8745b668ce6e10748b Mon Sep 17 00:00:00 2001 From: Stathis Kamperis Date: Mon, 19 Nov 2007 12:52:34 +0200 Subject: [PATCH] Add htable_stat_get_chain_len() --- genstructs/htable/htable.c | 16 +++++++++++++++- genstructs/htable/htable.h | 3 ++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/genstructs/htable/htable.c b/genstructs/htable/htable.c index 9029b89..cc3d1b5 100644 --- a/genstructs/htable/htable.c +++ b/genstructs/htable/htable.c @@ -299,8 +299,22 @@ const hnode_t *htable_get_next_elm(const htable_t *htable, size_t *pos, const hn } #ifdef HTABLE_STATS -size_t htable_get_grows(const htable_t *htable) +size_t htable_stat_get_grows(const htable_t *htable) { return htable->ht_grows; } + +size_t htable_stat_get_chain_len(const htable_t *htable, size_t pos) +{ + const hhead_t *phead; + const hnode_t *pnode; + size_t len; + + len = 0; + phead = &htable->ht_table[pos]; + TAILQ_FOREACH(pnode, phead, hn_next) + len++; + + return len; +} #endif diff --git a/genstructs/htable/htable.h b/genstructs/htable/htable.h index 02c6926..906e587 100644 --- a/genstructs/htable/htable.h +++ b/genstructs/htable/htable.h @@ -64,7 +64,8 @@ void htable_traverse(const htable_t *htable, void (*pfunc)(void *data)); const hnode_t *htable_get_next_elm(const htable_t *htable, size_t *pos, const hnode_t *pnode); #ifdef HTABLE_STATS -size_t htable_get_grows(const htable_t *htable); +size_t htable_stat_get_grows(const htable_t *htable); +size_t htable_stat_get_chain_len(const htable_t *htable, size_t pos); #endif #endif /* HTABLE_H */ -- 2.11.4.GIT