Skip to content

Commit 7422b2a

Browse files
szedergitster
authored andcommitted
commit-slab: clarify slabname##_peek()'s return value
Ever since 862e730 (commit-slab: introduce slabname##_peek() function, 2015-05-14) the slabname##_peek() function is documented as: This function is similar to indegree_at(), but it will return NULL until a call to indegree_at() was made for the commit. This, however, is usually not the case. If indegree_at() allocates memory, then it will do so not only for the single commit it got as parameter, but it will allocate a whole new, ~512kB slab. Later on, if any other commit's 'index' field happens to point into an already allocated slab, then indegree_peek() for such a commit will return a valid non-NULL pointer, pointing to a zero-initialized location in the slab, even if no indegree_at() call has been made for that commit yet. Update slabname##_peek()'s documentation to clarify this. Signed-off-by: SZEDER Gábor <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 4cd1cf3 commit 7422b2a

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

commit-slab.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@
2424
* - int *indegree_peek(struct indegree *, struct commit *);
2525
*
2626
* This function is similar to indegree_at(), but it will return NULL
27-
* until a call to indegree_at() was made for the commit.
27+
* if the location to store the data associated with the given commit
28+
* has not been allocated yet.
29+
* Note that the location to store the data might have already been
30+
* allocated even if no indegree_at() call has been made for that commit
31+
* yet; in this case this function returns a pointer to a
32+
* zero-initialized location.
2833
*
2934
* - void init_indegree(struct indegree *);
3035
* void init_indegree_with_stride(struct indegree *, int);

0 commit comments

Comments
 (0)