@ -12,7 +12,7 @@ __attribute_cold__
static data_unset * array_data_string_copy ( const data_unset * s ) {
data_string * src = ( data_string * ) s ;
data_string * ds = array_data_string_init ( ) ;
if ( ! buffer_is_ emp ty ( & src - > key ) ) buffer_copy_buffer ( & ds - > key , & src - > key ) ;
if ( ! buffer_is_ uns et( & src - > key ) ) buffer_copy_buffer ( & ds - > key , & src - > key ) ;
buffer_copy_buffer ( & ds - > value , & src - > value ) ;
return ( data_unset * ) ds ;
}
@ -21,9 +21,9 @@ __attribute_cold__
static void array_data_string_insert_dup ( data_unset * dst , data_unset * src ) {
data_string * ds_dst = ( data_string * ) dst ;
data_string * ds_src = ( data_string * ) src ;
if ( ! buffer_is_ empty ( & ds_dst - > value ) )
if ( ! buffer_is_ blank ( & ds_dst - > value ) )
buffer_append_str2 ( & ds_dst - > value , CONST_STR_LEN ( " , " ) ,
CONST_ BUF_LEN( & ds_src - > value ) ) ;
BUF_PTR _LEN( & ds_src - > value ) ) ;
else
buffer_copy_buffer ( & ds_dst - > value , & ds_src - > value ) ;
}
@ -54,7 +54,7 @@ __attribute_cold__
static data_unset * array_data_integer_copy ( const data_unset * s ) {
data_integer * src = ( data_integer * ) s ;
data_integer * di = array_data_integer_init ( ) ;
if ( ! buffer_is_ emp ty ( & src - > key ) ) buffer_copy_buffer ( & di - > key , & src - > key ) ;
if ( ! buffer_is_ uns et( & src - > key ) ) buffer_copy_buffer ( & di - > key , & src - > key ) ;
di - > value = src - > value ;
return ( data_unset * ) di ;
}
@ -84,7 +84,7 @@ __attribute_cold__
static data_unset * array_data_array_copy ( const data_unset * s ) {
data_array * src = ( data_array * ) s ;
data_array * da = array_data_array_init ( ) ;
if ( ! buffer_is_ emp ty ( & src - > key ) ) buffer_copy_buffer ( & da - > key , & src - > key ) ;
if ( ! buffer_is_ uns et( & src - > key ) ) buffer_copy_buffer ( & da - > key , & src - > key ) ;
array_copy_array ( & da - > value , & src - > value ) ;
return ( data_unset * ) da ;
}
@ -221,7 +221,7 @@ static int array_keycmpb(const char * const k, const uint32_t klen, const buffer
* if inserted into key - value array */
/*force_assert(b && b->used);*/
return array_keycmp ( k , klen , b - > ptr , b - > used - 1 ) ;
/*return array_keycmp(k, klen, CONST_ BUF_LEN(b));*/
/*return array_keycmp(k, klen, BUF_PTR _LEN(b));*/
}
/* returns pos into a->sorted[] which contains copy of data (ptr) in a->data[]
@ -276,7 +276,7 @@ static int32_t array_get_index(const array * const a, const char * const k, cons
* if inserted into key - value array */
/*force_assert(b && b->used);*/
int cmp = array_keycmp ( k , klen , b - > ptr , b - > used - 1 ) ;
/*int cmp = array_keycmp(k, klen, CONST_ BUF_LEN(b));*/
/*int cmp = array_keycmp(k, klen, BUF_PTR _LEN(b));*/
if ( cmp < 0 ) /* key < [probe] */
upper = probe ; /* still: lower <= upper */
else if ( cmp > 0 ) /* key > [probe] */
@ -436,13 +436,13 @@ static data_unset **array_find_or_insert(array * const a, data_unset * const ent
force_assert ( NULL ! = entry ) ;
/* push value onto end of array if there is no key */
if ( buffer_is_ emp ty ( & entry - > key ) ) {
if ( buffer_is_ uns et( & entry - > key ) ) {
array_insert_data_at_pos ( a , entry , a - > used ) ;
return NULL ;
}
/* try to find the entry */
const int32_t ipos = array_get_index ( a , CONST_ BUF_LEN( & entry - > key ) ) ;
const int32_t ipos = array_get_index ( a , BUF_PTR _LEN( & entry - > key ) ) ;
if ( ipos > = 0 ) return & a - > sorted [ ipos ] ;
array_insert_data_at_pos ( a , entry , ( uint32_t ) ( - ipos - 1 ) ) ;
@ -454,7 +454,7 @@ void array_replace(array * const a, data_unset * const entry) {
if ( NULL = = array_find_or_insert ( a , entry ) ) return ;
/* find the entry (array_find_or_insert() returned non-NULL) */
const int32_t ipos = array_get_index ( a , CONST_ BUF_LEN( & entry - > key ) ) ;
const int32_t ipos = array_get_index ( a , BUF_PTR _LEN( & entry - > key ) ) ;
force_assert ( ipos > = 0 ) ;
data_unset * old = a - > sorted [ ipos ] ;
force_assert ( old ! = entry ) ;
@ -483,7 +483,7 @@ void array_insert_unique(array * const a, data_unset * const entry) {
int array_is_vlist ( const array * const a ) {
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
data_unset * du = a - > data [ i ] ;
if ( ! buffer_is_ emp ty ( & du - > key ) | | du - > type ! = TYPE_STRING ) return 0 ;
if ( ! buffer_is_ uns et( & du - > key ) | | du - > type ! = TYPE_STRING ) return 0 ;
}
return 1 ;
}
@ -491,7 +491,7 @@ int array_is_vlist(const array * const a) {
int array_is_kvany ( const array * const a ) {
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
data_unset * du = a - > data [ i ] ;
if ( buffer_is_ emp ty ( & du - > key ) ) return 0 ;
if ( buffer_is_ uns et( & du - > key ) ) return 0 ;
}
return 1 ;
}
@ -499,7 +499,7 @@ int array_is_kvany(const array * const a) {
int array_is_kvarray ( const array * const a ) {
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
data_unset * du = a - > data [ i ] ;
if ( buffer_is_ emp ty ( & du - > key ) | | du - > type ! = TYPE_ARRAY ) return 0 ;
if ( buffer_is_ uns et( & du - > key ) | | du - > type ! = TYPE_ARRAY ) return 0 ;
}
return 1 ;
}
@ -507,7 +507,7 @@ int array_is_kvarray(const array * const a) {
int array_is_kvstring ( const array * const a ) {
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
data_unset * du = a - > data [ i ] ;
if ( buffer_is_ emp ty ( & du - > key ) | | du - > type ! = TYPE_STRING ) return 0 ;
if ( buffer_is_ uns et( & du - > key ) | | du - > type ! = TYPE_STRING ) return 0 ;
}
return 1 ;
}
@ -523,7 +523,7 @@ array_match_key_prefix_klen (const array * const a, const char * const s, const
{
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
const buffer * const key = & a - > data [ i ] - > key ;
const uint32_t klen = buffer_ string_length ( key ) ;
const uint32_t klen = buffer_ clen ( key ) ;
if ( klen < = slen & & 0 = = memcmp ( s , key - > ptr , klen ) )
return a - > data [ i ] ;
}
@ -535,7 +535,7 @@ array_match_key_prefix_nc_klen (const array * const a, const char * const s, con
{
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
const buffer * const key = & a - > data [ i ] - > key ;
const uint32_t klen = buffer_ string_length ( key ) ;
const uint32_t klen = buffer_ clen ( key ) ;
if ( klen < = slen & & buffer_eq_icase_ssn ( s , key - > ptr , klen ) )
return a - > data [ i ] ;
}
@ -548,23 +548,23 @@ array_match_key_prefix (const array * const a, const buffer * const b)
# ifdef __clang_analyzer__
force_assert ( b ) ;
# endif
return array_match_key_prefix_klen ( a , CONST_ BUF_LEN( b ) ) ;
return array_match_key_prefix_klen ( a , BUF_PTR _LEN( b ) ) ;
}
data_unset *
array_match_key_prefix_nc ( const array * const a , const buffer * const b )
{
return array_match_key_prefix_nc_klen ( a , CONST_ BUF_LEN( b ) ) ;
return array_match_key_prefix_nc_klen ( a , BUF_PTR _LEN( b ) ) ;
}
const buffer *
array_match_value_prefix ( const array * const a , const buffer * const b )
{
const uint32_t blen = buffer_ string_length ( b ) ;
const uint32_t blen = buffer_ clen ( b ) ;
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
const buffer * const value = & ( ( data_string * ) a - > data [ i ] ) - > value ;
const uint32_t vlen = buffer_ string_length ( value ) ;
const uint32_t vlen = buffer_ clen ( value ) ;
if ( vlen < = blen & & 0 = = memcmp ( b - > ptr , value - > ptr , vlen ) )
return value ;
}
@ -574,11 +574,11 @@ array_match_value_prefix (const array * const a, const buffer * const b)
const buffer *
array_match_value_prefix_nc ( const array * const a , const buffer * const b )
{
const uint32_t blen = buffer_ string_length ( b ) ;
const uint32_t blen = buffer_ clen ( b ) ;
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
const buffer * const value = & ( ( data_string * ) a - > data [ i ] ) - > value ;
const uint32_t vlen = buffer_ string_length ( value ) ;
const uint32_t vlen = buffer_ clen ( value ) ;
if ( vlen < = blen & & buffer_eq_icase_ssn ( b - > ptr , value - > ptr , vlen ) )
return value ;
}
@ -588,12 +588,12 @@ array_match_value_prefix_nc (const array * const a, const buffer * const b)
data_unset *
array_match_key_suffix ( const array * const a , const buffer * const b )
{
const uint32_t blen = buffer_ string_length ( b ) ;
const uint32_t blen = buffer_ clen ( b ) ;
const char * const end = b - > ptr + blen ;
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
const buffer * const key = & a - > data [ i ] - > key ;
const uint32_t klen = buffer_ string_length ( key ) ;
const uint32_t klen = buffer_ clen ( key ) ;
if ( klen < = blen & & 0 = = memcmp ( end - klen , key - > ptr , klen ) )
return a - > data [ i ] ;
}
@ -603,12 +603,12 @@ array_match_key_suffix (const array * const a, const buffer * const b)
data_unset *
array_match_key_suffix_nc ( const array * const a , const buffer * const b )
{
const uint32_t blen = buffer_ string_length ( b ) ;
const uint32_t blen = buffer_ clen ( b ) ;
const char * const end = b - > ptr + blen ;
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
const buffer * const key = & a - > data [ i ] - > key ;
const uint32_t klen = buffer_ string_length ( key ) ;
const uint32_t klen = buffer_ clen ( key ) ;
if ( klen < = blen & & buffer_eq_icase_ssn ( end - klen , key - > ptr , klen ) )
return a - > data [ i ] ;
}
@ -618,12 +618,12 @@ array_match_key_suffix_nc (const array * const a, const buffer * const b)
const buffer *
array_match_value_suffix ( const array * const a , const buffer * const b )
{
const uint32_t blen = buffer_ string_length ( b ) ;
const uint32_t blen = buffer_ clen ( b ) ;
const char * const end = b - > ptr + blen ;
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
const buffer * const value = & ( ( data_string * ) a - > data [ i ] ) - > value ;
const uint32_t vlen = buffer_ string_length ( value ) ;
const uint32_t vlen = buffer_ clen ( value ) ;
if ( vlen < = blen & & 0 = = memcmp ( end - vlen , value - > ptr , vlen ) )
return value ;
}
@ -633,12 +633,12 @@ array_match_value_suffix (const array * const a, const buffer * const b)
const buffer *
array_match_value_suffix_nc ( const array * const a , const buffer * const b )
{
const uint32_t blen = buffer_ string_length ( b ) ;
const uint32_t blen = buffer_ clen ( b ) ;
const char * const end = b - > ptr + blen ;
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
const buffer * const value = & ( ( data_string * ) a - > data [ i ] ) - > value ;
const uint32_t vlen = buffer_ string_length ( value ) ;
const uint32_t vlen = buffer_ clen ( value ) ;
if ( vlen < = blen & & buffer_eq_icase_ssn ( end - vlen , value - > ptr , vlen ) )
return value ;
}
@ -648,12 +648,12 @@ array_match_value_suffix_nc (const array * const a, const buffer * const b)
data_unset *
array_match_path_or_ext ( const array * const a , const buffer * const b )
{
const uint32_t blen = buffer_ string_length ( b ) ;
const uint32_t blen = buffer_ clen ( b ) ;
for ( uint32_t i = 0 ; i < a - > used ; + + i ) {
/* check extension in the form "^/path" or ".ext$" */
const buffer * const key = & a - > data [ i ] - > key ;
const uint32_t klen = buffer_ string_length ( key ) ;
const uint32_t klen = buffer_ clen ( key ) ;
if ( klen < = blen
& & 0 = = memcmp ( ( * ( key - > ptr ) = = ' / ' ? b - > ptr : b - > ptr + blen - klen ) ,
key - > ptr , klen ) )