summaryrefslogtreecommitdiff
path: root/src/array.c
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2019-10-09 23:24:25 -0400
committerGlenn Strauss <gstrauss@gluelogic.com>2020-02-24 11:15:32 -0500
commit83535bbef351bc39edb201f815a79c0046f83d20 (patch)
treea30894b4bacf309226e649b953a0f08dc2eed03a /src/array.c
parent5c0c4936b4bc4fe57da0cf1f02ce5df987ab91a2 (diff)
downloadlighttpd-git-83535bbef351bc39edb201f815a79c0046f83d20.tar.gz
[core] differentiate array_get_* for ro and rw
array_get_element_klen() is now intended for read-only access array_get_data_unset() is used by config processing for r/w access array_get_buf_ptr() is used for r/w access to ds->value (string buffer)
Diffstat (limited to 'src/array.c')
-rw-r--r--src/array.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/array.c b/src/array.c
index d71624d5..9da4be82 100644
--- a/src/array.c
+++ b/src/array.c
@@ -142,7 +142,13 @@ static int32_t array_get_index(const array * const a, const char * const k, cons
}
__attribute_hot__
-data_unset *array_get_element_klen(const array * const a, const char *key, const size_t klen) {
+const data_unset *array_get_element_klen(const array * const a, const char *key, const size_t klen) {
+ const int32_t ipos = array_get_index(a, key, klen);
+ return ipos >= 0 ? a->data[ipos] : NULL;
+}
+
+/* non-const (data_config *) for configparser.y (not array_get_element_klen())*/
+data_unset *array_get_data_unset(const array * const a, const char *key, const size_t klen) {
const int32_t ipos = array_get_index(a, key, klen);
return ipos >= 0 ? a->data[ipos] : NULL;
}