aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-04-19 09:33:30 +0200
committerMarc André Tanner <mat@brain-dump.org>2017-04-19 10:00:27 +0200
commit7bc2fb906b41960eba4391d7dbf7526ea02d5afd (patch)
tree85515c975da361a19b364a2856a35bc8180d12e2
parent22bb54a965ac38c02cd12220fa95af4ee5f7f83d (diff)
downloadvis-7bc2fb906b41960eba4391d7dbf7526ea02d5afd.tar.gz
vis-7bc2fb906b41960eba4391d7dbf7526ea02d5afd.tar.xz
array: implement array_truncate
-rw-r--r--array.c8
-rw-r--r--array.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/array.c b/array.c
index 46ea9e0..8328b06 100644
--- a/array.c
+++ b/array.c
@@ -127,3 +127,11 @@ size_t array_length(Array *arr) {
size_t array_capacity(Array *arr) {
return arr->count;
}
+
+bool array_truncate(Array *arr, size_t len) {
+ if (len <= arr->len) {
+ arr->len = len;
+ return true;
+ }
+ return false;
+}
diff --git a/array.h b/array.h
index 21036a9..b369d68 100644
--- a/array.h
+++ b/array.h
@@ -56,5 +56,7 @@ bool array_remove(Array*, size_t idx);
size_t array_length(Array*);
/* return the number of elements which can be stored without enlarging the array */
size_t array_capacity(Array*);
+/* remove all elements at index >= length, keep allocated memory */
+bool array_truncate(Array*, size_t length);
#endif