diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2019-10-09 23:24:25 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2020-02-24 11:15:32 -0500 |
commit | 83535bbef351bc39edb201f815a79c0046f83d20 (patch) | |
tree | a30894b4bacf309226e649b953a0f08dc2eed03a /src/array.c | |
parent | 5c0c4936b4bc4fe57da0cf1f02ce5df987ab91a2 (diff) | |
download | lighttpd-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.c | 8 |
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; } |