|
Revision tags: lighttpd-1.4.69, lighttpd-1.4.68, lighttpd-1.4.67, lighttpd-1.4.66, lighttpd-1.4.65, lighttpd-1.4.64, lighttpd-1.4.63, lighttpd-1.4.62, lighttpd-1.4.61, lighttpd-1.4.60 |
|
| #
4f8f83ea |
| 20-May-2021 |
Glenn Strauss <[email protected]> |
[core] move data_{array,integer,string} to array.c
move native data_* types into array.c (the types are already declared in array.h)
The array data structure remains extendable, as is done with dat
[core] move data_{array,integer,string} to array.c
move native data_* types into array.c (the types are already declared in array.h)
The array data structure remains extendable, as is done with data_config (configfile) and data_auth (mod_auth), though array data structure primary uses are at startup (config time) and header parsing. The insertion logic into sorted list can be expensive for large lists, so header parsing might choose a different data structure in the future.
show more ...
|
| #
fbe55825 |
| 20-May-2021 |
Glenn Strauss <[email protected]> |
[core] consolidate config printing code
funcs use only at startup and only for lighttpd -p
|
| #
dde9df43 |
| 17-Mar-2021 |
Glenn Strauss <[email protected]> |
[multiple] mark addtl funcs attr returns_nonnull
|
|
Revision tags: lighttpd-1.4.59 |
|
| #
0045b9aa |
| 26-Jan-2021 |
Glenn Strauss <[email protected]> |
[core] const data_unset *array_get_element_klen()
return (const data_unset *) from array_get_element_klen(); use array_get_data_unset() for non-const (note: marked attribute cold)
|
|
Revision tags: lighttpd-1.4.58, lighttpd-1.4.57, lighttpd-1.4.56, lighttpd-1.4.56-rc7, lighttpd-1.4.56-rc6, lighttpd-1.4.56-rc5, lighttpd-1.4.56-rc4, lighttpd-1.4.56-rc3, lighttpd-1.4.56-rc2, lighttpd-1.4.56-rc1 |
|
| #
2e0676fd |
| 11-Sep-2020 |
Glenn Strauss <[email protected]> |
[core] extend (data_string *) to store header id
(optional addition to (data_string *), used by http_header.[ch])
extend (data_string *) instead of creating another data_* TYPE_* (new data type w
[core] extend (data_string *) to store header id
(optional addition to (data_string *), used by http_header.[ch])
extend (data_string *) instead of creating another data_* TYPE_* (new data type would probably have (data_string *) as base class) (might revisit choice in the future)
HTTP_HEADER_UNSPECIFIED has been removed. It was used in select locations as an optimization to avoid looking up enum header_header_e before checking the array, but the ordering in the array now relies on having the id. Having the id allows for a quick check if a common header is present or not in the htags bitmask, before checking the array, and allows for integer comparison in the log(n) search of the array, instead of strncasecmp().
With HTTP_HEADER_UNSPECIFIED removed, add optimization to set bit in htags for HTTP_HEADER_OTHER when an "other" header is added, but do not clear the bit, as there might be addtl "other" headers
show more ...
|
| #
68ec5ad6 |
| 11-Sep-2020 |
Glenn Strauss <[email protected]> |
[core] array.[ch] using uint32_t instead of size_t
|
|
Revision tags: lighttpd-1.4.55 |
|
| #
24680a91 |
| 22-Nov-2019 |
Glenn Strauss <[email protected]> |
[core] array_init() arg for initial size
|
| #
b87e8783 |
| 23-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] config_plugin_values_init() new interface
new data structures and interface for processing config directives (towards more efficient approach to config merging)
continue work to isolate data
[core] config_plugin_values_init() new interface
new data structures and interface for processing config directives (towards more efficient approach to config merging)
continue work to isolate data_config
show more ...
|
| #
e3dc34d1 |
| 16-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] array a->sorted[] as ptrs rather than pos
While slightly more memory use in 64-bit (though same memory use as prior versions of lighttpd), avoids bouncing through second array when searching
[core] array a->sorted[] as ptrs rather than pos
While slightly more memory use in 64-bit (though same memory use as prior versions of lighttpd), avoids bouncing through second array when searching in sorted list. Most use of arrays in lighttpd is to build a list once, and elements are not removed from the list.
show more ...
|
| #
a762402d |
| 14-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] keep a->data[] sorted (REVERT)
This reverts commit 2260a8062ee599ecf28d9b52b981603fd2084aff.
original ordering of array elements is significant e.g. in lighttpd.conf lists where first match
[core] keep a->data[] sorted (REVERT)
This reverts commit 2260a8062ee599ecf28d9b52b981603fd2084aff.
original ordering of array elements is significant e.g. in lighttpd.conf lists where first match to request is applied
show more ...
|
| #
c2238256 |
| 13-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] inline array as part of data_array value
(instead of value being (array *))
|
| #
601c572c |
| 13-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] inline buffer as part of data_string value
(instead of value being (buffer *))
|
| #
b7942c58 |
| 13-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] (data_unset *) from array_get_element_klen
return (data_unset *) from array_get_element_klen() to prep for putting buffer into data_string for value member, rather than as (buffer *)
(allow
[core] (data_unset *) from array_get_element_klen
return (data_unset *) from array_get_element_klen() to prep for putting buffer into data_string for value member, rather than as (buffer *)
(allow in-place modification of these buffer values)
show more ...
|
| #
ad9b7e00 |
| 13-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] inline buffer as part of DATA_UNSET key
(instead of key being (buffer *))
|
| #
83535bbe |
| 10-Oct-2019 |
Glenn Strauss <[email protected]> |
[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
[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)
show more ...
|
| #
5c0c4936 |
| 09-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] __attribute_returns_nonnull__
|
| #
c9f1b612 |
| 06-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] keep a->data[] sorted; remove a->sorted[]
|
| #
ddb78f75 |
| 03-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] remove unused array_reset()
|
| #
70b5d729 |
| 02-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] mark some data_* funcs cold
mark funcs cold if seldom used or used only at startup config processing
mark most data_config_* funcs cold
data_*_copy() data_*_insert_dup() data_*_print() data
[core] mark some data_* funcs cold
mark funcs cold if seldom used or used only at startup config processing
mark most data_config_* funcs cold
data_*_copy() data_*_insert_dup() data_*_print() data_*_reset()
array_reset()
show more ...
|
| #
b2991c68 |
| 02-Oct-2019 |
Glenn Strauss <[email protected]> |
[core] perf: array.c performance enhancements
mark array_get_index() as hot, rewrite to be pure and return sorted pos
mark routines as pure, as appropriate
mark routines as cold if used only at st
[core] perf: array.c performance enhancements
mark array_get_index() as hot, rewrite to be pure and return sorted pos
mark routines as pure, as appropriate
mark routines as cold if used only at startup for config processing
mark params const, as appropriate
array_get_buf_ptr() for modifiable value buffer after insert into array
uint32_t used and size members instead of size_t
remove a->unique_ndx member; simply add to end of array for value lists remove du->is_index_key member; simply check buffer_is_empty(du->key)
array_insert_key_value() used to be a hint that lookup could be skipped, but the state from array_get_index() is now saved and reused internally, so the distinction is no longer needed. Use array_set_key_value().
show more ...
|
|
Revision tags: lighttpd-1.4.54, lighttpd-1.4.53, lighttpd-1.4.52 |
|
| #
062089ff |
| 23-Oct-2018 |
Glenn Strauss <[email protected]> |
[core] perf: array_reset_data_strings()
array_reset_data_strings() specialization
|
|
Revision tags: lighttpd-1.4.51 |
|
| #
8c7f1dfb |
| 23-Sep-2018 |
Glenn Strauss <[email protected]> |
[core] more memory-efficient fn table for data_*
save 40 bytes (64-bit), or 16 bytes (32-bit) per data_* element at the cost of going through indirect function pointer to execute methods. At runtim
[core] more memory-efficient fn table for data_*
save 40 bytes (64-bit), or 16 bytes (32-bit) per data_* element at the cost of going through indirect function pointer to execute methods. At runtime, the reset() method is most used among them.
show more ...
|
| #
002a4c52 |
| 23-Sep-2018 |
Glenn Strauss <[email protected]> |
[core] array_get_int_ptr()
|
| #
e6741acd |
| 16-Sep-2018 |
Glenn Strauss <[email protected]> |
[core] code reuse array_match_*() routines
|
| #
a7c27c9f |
| 08-Sep-2018 |
Glenn Strauss <[email protected]> |
[core] code reuse with array_insert_key_value()
code reuse with array_insert_key_value() and related array manipulation
|