aboutsummaryrefslogtreecommitdiffstats
path: root/strvec.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-06-06 12:49:23 -0700
committerJunio C Hamano <gitster@pobox.com>2024-06-06 12:49:23 -0700
commitcf792653ad407badec34e67612231676057f9532 (patch)
tree9bf1e8c130b89f468e10ec979f07089e622133f1 /strvec.h
parent7b0defb3915eaa0bd118f0996e8c00b4eb2dc1ca (diff)
parentebdbefa4fe9f618347124b37d44e517e0c6a3e4c (diff)
downloadgit-cf792653ad407badec34e67612231676057f9532.tar.gz
Merge branch 'ps/leakfixes'
Leakfixes. * ps/leakfixes: builtin/mv: fix leaks for submodule gitfile paths builtin/mv: refactor to use `struct strvec` builtin/mv duplicate string list memory builtin/mv: refactor `add_slash()` to always return allocated strings strvec: add functions to replace and remove strings submodule: fix leaking memory for submodule entries commit-reach: fix memory leak in `ahead_behind()` builtin/credential: clear credential before exit config: plug various memory leaks config: clarify memory ownership in `git_config_string()` builtin/log: stop using globals for format config builtin/log: stop using globals for log config convert: refactor code to clarify ownership of check_roundtrip_encoding diff: refactor code to clarify memory ownership of prefixes config: clarify memory ownership in `git_config_pathname()` http: refactor code to clarify memory ownership checkout: clarify memory ownership in `unique_tracking_name()` strbuf: fix leak when `appendwholeline()` fails with EOF transport-helper: fix leaking helper name
Diffstat (limited to 'strvec.h')
-rw-r--r--strvec.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/strvec.h b/strvec.h
index 4715d3e51f..6c7e8b7d50 100644
--- a/strvec.h
+++ b/strvec.h
@@ -65,6 +65,19 @@ void strvec_pushl(struct strvec *, ...);
void strvec_pushv(struct strvec *, const char **);
/**
+ * Replace the value at the given index with a new value. The index must be
+ * valid. Returns a pointer to the inserted value.
+ */
+const char *strvec_replace(struct strvec *array, size_t idx, const char *replacement);
+
+/*
+ * Remove the value at the given index. The remainder of the array will be
+ * moved to fill the resulting gap. The provided index must point into the
+ * array.
+ */
+void strvec_remove(struct strvec *array, size_t idx);
+
+/**
* Remove the final element from the array. If there are no
* elements in the array, do nothing.
*/