diff options
| author | Junio C Hamano <gitster@pobox.com> | 2024-08-23 09:02:33 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2024-08-23 09:02:33 -0700 |
| commit | 1b6b2bfae582e1e5a9b9ad2ef15985f69ade0fce (patch) | |
| tree | e92ce38ee06174dcff67406f37a9a5f2c6566053 /csum-file.h | |
| parent | The seventh batch (diff) | |
| parent | builtin/diff: free symmetric diff members (diff) | |
| download | git-1b6b2bfae582e1e5a9b9ad2ef15985f69ade0fce.tar.gz git-1b6b2bfae582e1e5a9b9ad2ef15985f69ade0fce.zip | |
Merge branch 'ps/leakfixes-part-4'
More leak fixes.
* ps/leakfixes-part-4: (22 commits)
builtin/diff: free symmetric diff members
diff: free state populated via options
builtin/log: fix leak when showing converted blob contents
userdiff: fix leaking memory for configured diff drivers
builtin/format-patch: fix various trivial memory leaks
diff: fix leak when parsing invalid ignore regex option
unpack-trees: clear index when not propagating it
sequencer: release todo list on error paths
merge-ort: unconditionally release attributes index
builtin/fast-export: plug leaking tag names
builtin/fast-export: fix leaking diff options
builtin/fast-import: plug trivial memory leaks
builtin/notes: fix leaking `struct notes_tree` when merging notes
builtin/rebase: fix leaking `commit.gpgsign` value
config: fix leaking comment character config
submodule-config: fix leaking name entry when traversing submodules
read-cache: fix leaking hashfile when writing index fails
bulk-checkin: fix leaking state TODO
object-name: fix leaking symlink paths in object context
object-file: fix memory leak when reading corrupted headers
...
Diffstat (limited to 'csum-file.h')
| -rw-r--r-- | csum-file.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/csum-file.h b/csum-file.h index 36c7c5585f..7c73da0a40 100644 --- a/csum-file.h +++ b/csum-file.h @@ -46,6 +46,16 @@ int hashfile_truncate(struct hashfile *, struct hashfile_checkpoint *); struct hashfile *hashfd(int fd, const char *name); struct hashfile *hashfd_check(const char *name); struct hashfile *hashfd_throughput(int fd, const char *name, struct progress *tp); + +/* + * Free the hashfile without flushing its contents to disk. This only + * needs to be called when not calling `finalize_hashfile()`. + */ +void free_hashfile(struct hashfile *f); + +/* + * Finalize the hashfile by flushing data to disk and free'ing it. + */ int finalize_hashfile(struct hashfile *, unsigned char *, enum fsync_component, unsigned int); void discard_hashfile(struct hashfile *); void hashwrite(struct hashfile *, const void *, unsigned int); |
