Commit Briefs
include sha2.h too where sha1.h is included
In preparation for wide sha256 support; stsp@ agrees. Change done mechanically with find . -iname \*.[cy] -exec sam {} + X ,x/<sha1\.h>/i/\n#include <sha2.h>
make got_commit_graph_iter_next use caller-provided storage for the id
and adjust the callers. discussed with and ok stsp@
plug leak in the commit graph iterator
We fail to release the memory for the nodes. To fix it however, we some consumer of the commit graph iterator need to be corrected: the returned pointer is safe to be used only up until the next iter_next call; save a copy it if it's needed afterwards too. ok stsp@
replace an indirect call to idset_add(), via add_node(), with a direct call
Avoids leaking the node structure returned from add_node(). ok op@
free commit on error path
while here drop the ternary too: if add_node succeeds `new_node' is non-NULL. ok stsp@
got_commit_graph_close: free tailq contents
The tailq should ideally be empty when we reach got_commit_graph_close, but consumer code may exit the commit graph loop earlier. spotted by and ok stsp@
inline struct got_object_id in struct got_object_qid
Saves us from doing a malloc/free call for every item on the list. ok op@
stop relying on commit cache for good performance of got_object_id_by_path()
Instead of internally opening and closing the same commit object over and over again, require callers to pass an open commit object in. Avoids an inherent dependency on the commit object cache for reasonable performance. ok op@
switch from SIMPLEQ to equivalent STAILQ macros
The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp