summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmanuele Torre <torreemanuele6@gmail.com>2024-03-28 06:37:48 +0100
committerEmanuele Torre <torreemanuele6@gmail.com>2024-03-28 12:12:39 +0100
commitce2638af405d5bd74cad9fc0665f9ae9d9bf36d1 (patch)
treec27c2d0f551751854dba79f11a3f13501d2a32e5
parentea78b5a0309b75efbe2e956e26be7a93f316b3b1 (diff)
jv_aux.c: replace jv_array_foreach with regular loop in jv_dels()
The code was only conditionally using the value
-rw-r--r--src/jv_aux.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/jv_aux.c b/src/jv_aux.c
index 6004799c..0a06117e 100644
--- a/src/jv_aux.c
+++ b/src/jv_aux.c
@@ -314,7 +314,7 @@ static jv jv_dels(jv t, jv keys) {
int neg_idx = 0;
int nonneg_idx = 0;
int len = jv_array_length(jv_copy(t));
- jv_array_foreach(t, i, elem) {
+ for (int i = 0; i < len; ++i) {
int del = 0;
while (neg_idx < jv_array_length(jv_copy(neg_keys))) {
int delidx = len + (int)jv_number_get_value_and_consume(jv_array_get(jv_copy(neg_keys), neg_idx));
@@ -343,9 +343,7 @@ static jv jv_dels(jv t, jv keys) {
}
}
if (!del)
- new_array = jv_array_append(new_array, elem);
- else
- jv_free(elem);
+ new_array = jv_array_append(new_array, jv_array_get(jv_copy(t), i));
}
arr_out:
jv_free(neg_keys);