summaryrefslogtreecommitdiff
path: root/src/array.h
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2017-05-11 23:15:29 -0400
committerGlenn Strauss <gstrauss@gluelogic.com>2017-05-15 22:02:33 -0400
commit86bb8be2c8eb5a65ebf73f12f62833db84d2cf9c (patch)
tree3876eda09b6d08c143c83422f18478f0997900d2 /src/array.h
parent07cde2cf0b290cdbbf6528e3ecf106297615f754 (diff)
downloadlighttpd-git-86bb8be2c8eb5a65ebf73f12f62833db84d2cf9c.tar.gz
[core] perf: skip redundant strlen() if len known
performance: skip redundant strlen() if length is already known introduce array_get_element_klen() to take key and klen params
Diffstat (limited to 'src/array.h')
-rw-r--r--src/array.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/array.h b/src/array.h
index 81a6d8ca..b8f6112c 100644
--- a/src/array.h
+++ b/src/array.h
@@ -163,8 +163,9 @@ int array_is_kvarray(array *a);
int array_is_kvstring(array *a);
int array_print(array *a, int depth);
data_unset *array_get_unused_element(array *a, data_type_t t);
-data_unset *array_get_element(array *a, const char *key);
-data_unset *array_extract_element(array *a, const char *key); /* removes found entry from array */
+#define array_get_element(a, key) array_get_element_klen((a), (key), sizeof(key)-1)
+data_unset *array_get_element_klen(array *a, const char *key, size_t klen);
+data_unset *array_extract_element_klen(array *a, const char *key, size_t klen); /* removes found entry from array */
void array_set_key_value(array *hdrs, const char *key, size_t key_len, const char *value, size_t val_len);
void array_replace(array *a, data_unset *entry);
int array_strcasecmp(const char *a, size_t a_len, const char *b, size_t b_len);