php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
hash.c File Reference

Go to the source code of this file.

Macros

#define LEXBOR_HASH_EXTERN
 
#define LEXBOR_STR_RES_MAP_LOWERCASE
 
#define LEXBOR_STR_RES_MAP_UPPERCASE
 

Functions

lxb_inline lexbor_hash_entry_t ** lexbor_hash_table_create (lexbor_hash_t *hash)
 
lxb_inline void lexbor_hash_table_clean (lexbor_hash_t *hash)
 
lxb_inline lexbor_hash_entry_t ** lexbor_hash_table_destroy (lexbor_hash_t *hash)
 
lxb_inline lexbor_hash_entry_t_lexbor_hash_entry_create (lexbor_hash_t *hash, const lexbor_hash_copy_f copy_func, const lxb_char_t *key, size_t length)
 
lexbor_hash_tlexbor_hash_create (void)
 
lxb_status_t lexbor_hash_init (lexbor_hash_t *hash, size_t table_size, size_t struct_size)
 
void lexbor_hash_clean (lexbor_hash_t *hash)
 
lexbor_hash_tlexbor_hash_destroy (lexbor_hash_t *hash, bool destroy_obj)
 
voidlexbor_hash_insert (lexbor_hash_t *hash, const lexbor_hash_insert_t *insert, const lxb_char_t *key, size_t length)
 
voidlexbor_hash_insert_by_entry (lexbor_hash_t *hash, lexbor_hash_entry_t *entry, const lexbor_hash_search_t *search, const lxb_char_t *key, size_t length)
 
void lexbor_hash_remove (lexbor_hash_t *hash, const lexbor_hash_search_t *search, const lxb_char_t *key, size_t length)
 
voidlexbor_hash_search (lexbor_hash_t *hash, const lexbor_hash_search_t *search, const lxb_char_t *key, size_t length)
 
void lexbor_hash_remove_by_hash_id (lexbor_hash_t *hash, uint32_t hash_id, const lxb_char_t *key, size_t length, const lexbor_hash_cmp_f cmp_func)
 
voidlexbor_hash_search_by_hash_id (lexbor_hash_t *hash, uint32_t hash_id, const lxb_char_t *key, size_t length, const lexbor_hash_cmp_f cmp_func)
 
uint32_t lexbor_hash_make_id (const lxb_char_t *key, size_t length)
 
uint32_t lexbor_hash_make_id_lower (const lxb_char_t *key, size_t length)
 
uint32_t lexbor_hash_make_id_upper (const lxb_char_t *key, size_t length)
 
lxb_status_t lexbor_hash_copy (lexbor_hash_t *hash, lexbor_hash_entry_t *entry, const lxb_char_t *key, size_t length)
 
lxb_status_t lexbor_hash_copy_lower (lexbor_hash_t *hash, lexbor_hash_entry_t *entry, const lxb_char_t *key, size_t length)
 
lxb_status_t lexbor_hash_copy_upper (lexbor_hash_t *hash, lexbor_hash_entry_t *entry, const lxb_char_t *key, size_t length)
 

Variables

const lexbor_hash_insert_t lexbor_hash_insert_var
 
const lexbor_hash_insert_t lexbor_hash_insert_lower_var
 
const lexbor_hash_insert_t lexbor_hash_insert_upper_var
 
LXB_API const lexbor_hash_insert_tlexbor_hash_insert_raw = &lexbor_hash_insert_var
 
LXB_API const lexbor_hash_insert_tlexbor_hash_insert_lower = &lexbor_hash_insert_lower_var
 
LXB_API const lexbor_hash_insert_tlexbor_hash_insert_upper = &lexbor_hash_insert_upper_var
 
const lexbor_hash_search_t lexbor_hash_search_var
 
const lexbor_hash_search_t lexbor_hash_search_lower_var
 
const lexbor_hash_search_t lexbor_hash_search_upper_var
 
LXB_API const lexbor_hash_search_tlexbor_hash_search_raw = &lexbor_hash_search_var
 
LXB_API const lexbor_hash_search_tlexbor_hash_search_lower = &lexbor_hash_search_lower_var
 
LXB_API const lexbor_hash_search_tlexbor_hash_search_upper = &lexbor_hash_search_upper_var
 

Macro Definition Documentation

◆ LEXBOR_HASH_EXTERN

#define LEXBOR_HASH_EXTERN

Definition at line 7 of file hash.c.

◆ LEXBOR_STR_RES_MAP_LOWERCASE

#define LEXBOR_STR_RES_MAP_LOWERCASE

Definition at line 13 of file hash.c.

◆ LEXBOR_STR_RES_MAP_UPPERCASE

#define LEXBOR_STR_RES_MAP_UPPERCASE

Definition at line 14 of file hash.c.

Function Documentation

◆ _lexbor_hash_entry_create()

lxb_inline lexbor_hash_entry_t * _lexbor_hash_entry_create ( lexbor_hash_t * hash,
const lexbor_hash_copy_f copy_func,
const lxb_char_t * key,
size_t length )

Definition at line 95 of file hash.c.

◆ lexbor_hash_clean()

void lexbor_hash_clean ( lexbor_hash_t * hash)

Definition at line 160 of file hash.c.

◆ lexbor_hash_copy()

lxb_status_t lexbor_hash_copy ( lexbor_hash_t * hash,
lexbor_hash_entry_t * entry,
const lxb_char_t * key,
size_t length )

Definition at line 400 of file hash.c.

◆ lexbor_hash_copy_lower()

lxb_status_t lexbor_hash_copy_lower ( lexbor_hash_t * hash,
lexbor_hash_entry_t * entry,
const lxb_char_t * key,
size_t length )

Definition at line 425 of file hash.c.

◆ lexbor_hash_copy_upper()

lxb_status_t lexbor_hash_copy_upper ( lexbor_hash_t * hash,
lexbor_hash_entry_t * entry,
const lxb_char_t * key,
size_t length )

Definition at line 452 of file hash.c.

◆ lexbor_hash_create()

lexbor_hash_t * lexbor_hash_create ( void )

Definition at line 114 of file hash.c.

◆ lexbor_hash_destroy()

lexbor_hash_t * lexbor_hash_destroy ( lexbor_hash_t * hash,
bool destroy_obj )

Definition at line 168 of file hash.c.

◆ lexbor_hash_init()

lxb_status_t lexbor_hash_init ( lexbor_hash_t * hash,
size_t table_size,
size_t struct_size )

Definition at line 120 of file hash.c.

◆ lexbor_hash_insert()

void * lexbor_hash_insert ( lexbor_hash_t * hash,
const lexbor_hash_insert_t * insert,
const lxb_char_t * key,
size_t length )

Definition at line 186 of file hash.c.

◆ lexbor_hash_insert_by_entry()

void * lexbor_hash_insert_by_entry ( lexbor_hash_t * hash,
lexbor_hash_entry_t * entry,
const lexbor_hash_search_t * search,
const lxb_char_t * key,
size_t length )

Definition at line 226 of file hash.c.

◆ lexbor_hash_make_id()

uint32_t lexbor_hash_make_id ( const lxb_char_t * key,
size_t length )

Definition at line 343 of file hash.c.

◆ lexbor_hash_make_id_lower()

uint32_t lexbor_hash_make_id_lower ( const lxb_char_t * key,
size_t length )

Definition at line 362 of file hash.c.

◆ lexbor_hash_make_id_upper()

uint32_t lexbor_hash_make_id_upper ( const lxb_char_t * key,
size_t length )

Definition at line 381 of file hash.c.

◆ lexbor_hash_remove()

void lexbor_hash_remove ( lexbor_hash_t * hash,
const lexbor_hash_search_t * search,
const lxb_char_t * key,
size_t length )

Definition at line 266 of file hash.c.

◆ lexbor_hash_remove_by_hash_id()

void lexbor_hash_remove_by_hash_id ( lexbor_hash_t * hash,
uint32_t hash_id,
const lxb_char_t * key,
size_t length,
const lexbor_hash_cmp_f cmp_func )

Definition at line 282 of file hash.c.

◆ lexbor_hash_search()

void * lexbor_hash_search ( lexbor_hash_t * hash,
const lexbor_hash_search_t * search,
const lxb_char_t * key,
size_t length )

Definition at line 274 of file hash.c.

◆ lexbor_hash_search_by_hash_id()

void * lexbor_hash_search_by_hash_id ( lexbor_hash_t * hash,
uint32_t hash_id,
const lxb_char_t * key,
size_t length,
const lexbor_hash_cmp_f cmp_func )

Definition at line 320 of file hash.c.

◆ lexbor_hash_table_clean()

lxb_inline void lexbor_hash_table_clean ( lexbor_hash_t * hash)

Definition at line 79 of file hash.c.

◆ lexbor_hash_table_create()

lxb_inline lexbor_hash_entry_t ** lexbor_hash_table_create ( lexbor_hash_t * hash)

Definition at line 73 of file hash.c.

◆ lexbor_hash_table_destroy()

lxb_inline lexbor_hash_entry_t ** lexbor_hash_table_destroy ( lexbor_hash_t * hash)

Definition at line 85 of file hash.c.

Variable Documentation

◆ lexbor_hash_insert_lower

LXB_API const lexbor_hash_insert_t* lexbor_hash_insert_lower = &lexbor_hash_insert_lower_var

Definition at line 41 of file hash.c.

◆ lexbor_hash_insert_lower_var

const lexbor_hash_insert_t lexbor_hash_insert_lower_var
Initial value:
= {
}
uint32_t lexbor_hash_make_id_lower(const lxb_char_t *key, size_t length)
Definition hash.c:362
lxb_status_t lexbor_hash_copy_lower(lexbor_hash_t *hash, lexbor_hash_entry_t *entry, const lxb_char_t *key, size_t length)
Definition hash.c:425
bool lexbor_str_data_nlocmp_right(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
Definition str.c:450

Definition at line 25 of file hash.c.

◆ lexbor_hash_insert_raw

LXB_API const lexbor_hash_insert_t* lexbor_hash_insert_raw = &lexbor_hash_insert_var

Definition at line 38 of file hash.c.

◆ lexbor_hash_insert_upper

LXB_API const lexbor_hash_insert_t* lexbor_hash_insert_upper = &lexbor_hash_insert_upper_var

Definition at line 44 of file hash.c.

◆ lexbor_hash_insert_upper_var

const lexbor_hash_insert_t lexbor_hash_insert_upper_var
Initial value:
= {
}
uint32_t lexbor_hash_make_id_upper(const lxb_char_t *key, size_t length)
Definition hash.c:381
lxb_status_t lexbor_hash_copy_upper(lexbor_hash_t *hash, lexbor_hash_entry_t *entry, const lxb_char_t *key, size_t length)
Definition hash.c:452
bool lexbor_str_data_nupcmp_right(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
Definition str.c:463

Definition at line 31 of file hash.c.

◆ lexbor_hash_insert_var

const lexbor_hash_insert_t lexbor_hash_insert_var
Initial value:
= {
}
uint32_t lexbor_hash_make_id(const lxb_char_t *key, size_t length)
Definition hash.c:343
lxb_status_t lexbor_hash_copy(lexbor_hash_t *hash, lexbor_hash_entry_t *entry, const lxb_char_t *key, size_t length)
Definition hash.c:400
bool lexbor_str_data_ncmp(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
Definition str.c:523

Definition at line 19 of file hash.c.

◆ lexbor_hash_search_lower

LXB_API const lexbor_hash_search_t* lexbor_hash_search_lower = &lexbor_hash_search_lower_var

Definition at line 66 of file hash.c.

◆ lexbor_hash_search_lower_var

const lexbor_hash_search_t lexbor_hash_search_lower_var
Initial value:

Definition at line 52 of file hash.c.

◆ lexbor_hash_search_raw

LXB_API const lexbor_hash_search_t* lexbor_hash_search_raw = &lexbor_hash_search_var

Definition at line 63 of file hash.c.

◆ lexbor_hash_search_upper

LXB_API const lexbor_hash_search_t* lexbor_hash_search_upper = &lexbor_hash_search_upper_var

Definition at line 69 of file hash.c.

◆ lexbor_hash_search_upper_var

const lexbor_hash_search_t lexbor_hash_search_upper_var
Initial value:

Definition at line 57 of file hash.c.

◆ lexbor_hash_search_var

const lexbor_hash_search_t lexbor_hash_search_var
Initial value:

Definition at line 47 of file hash.c.