diff options
Diffstat (limited to 'commit-slab.h')
-rw-r--r-- | commit-slab.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/commit-slab.h b/commit-slab.h index 69bf0c807c..8e72a30536 100644 --- a/commit-slab.h +++ b/commit-slab.h @@ -24,7 +24,12 @@ * - int *indegree_peek(struct indegree *, struct commit *); * * This function is similar to indegree_at(), but it will return NULL - * until a call to indegree_at() was made for the commit. + * if the location to store the data associated with the given commit + * has not been allocated yet. + * Note that the location to store the data might have already been + * allocated even if no indegree_at() call has been made for that commit + * yet; in this case this function returns a pointer to a + * zero-initialized location. * * - void init_indegree(struct indegree *); * void init_indegree_with_stride(struct indegree *, int); @@ -42,6 +47,16 @@ * * Call this function before the slab falls out of scope to avoid * leaking memory. + * + * - void deep_clear_indegree(struct indegree *, void (*free_fn)(int*)) + * + * Empties the slab, similar to clear_indegree(), but in addition it + * calls the given 'free_fn' for each slab entry to release any + * additional memory that might be owned by the entry (but not the + * entry itself!). + * Note that 'free_fn' might be called even for entries for which no + * indegree_at() call has been made; in this case 'free_fn' is invoked + * with a pointer to a zero-initialized location. */ #define define_commit_slab(slabname, elemtype) \ |