diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2017-05-11 23:15:29 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2017-05-15 22:02:33 -0400 |
commit | 86bb8be2c8eb5a65ebf73f12f62833db84d2cf9c (patch) | |
tree | 3876eda09b6d08c143c83422f18478f0997900d2 /src/array.h | |
parent | 07cde2cf0b290cdbbf6528e3ecf106297615f754 (diff) | |
download | lighttpd-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.h | 5 |
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); |