|
VLC 4.0.0-dev
|
This file defines functions, structures and macros for handling arrays in vlc. More...
Go to the source code of this file.
Data Structures | |
| struct | vlc_array_t |
| struct | vlc_dictionary_entry_t |
| struct | vlc_dictionary_t |
Macros | |
| #define | TAB_INIT(count, tab) |
| #define | TAB_CLEAN(count, tab) |
| #define | TAB_APPEND_CAST(cast, count, tab, p) |
| #define | TAB_APPEND(count, tab, p) TAB_APPEND_CAST( , count, tab, p ) |
| #define | TAB_FIND(count, tab, p, idx) |
| #define | TAB_ERASE(count, tab, index) |
| #define | TAB_REMOVE(count, tab, p) |
| #define | TAB_INSERT_CAST(cast, count, tab, p, index) |
| #define | TAB_INSERT(count, tab, p, index) TAB_INSERT_CAST( , count, tab, p, index ) |
| #define | BSEARCH(entries, count, elem, zetype, key, answer) |
| Binary search in a sorted array. | |
| #define | _ARRAY_ALLOC(array, newsize) |
| #define | _ARRAY_GROW1(array) |
| #define | DECL_ARRAY(type) |
| #define | TYPEDEF_ARRAY(type, name) typedef DECL_ARRAY(type) name; |
| #define | ARRAY_INIT(array) |
| #define | ARRAY_RESET(array) |
| #define | ARRAY_APPEND(array, elem) |
| #define | ARRAY_INSERT(array, elem, pos) |
| #define | _ARRAY_SHRINK(array) |
| #define | ARRAY_FIND(array, p, idx) TAB_FIND((array).i_size, (array).p_elems, p, idx) |
| #define | ARRAY_REMOVE(array, pos) |
| #define | ARRAY_VAL(array, pos) array.p_elems[pos] |
| #define | ARRAY_BSEARCH(array, elem, zetype, key, answer) BSEARCH( (array).p_elems, (array).i_size, elem, zetype, key, answer) |
| #define | ARRAY_FOREACH(item, array) |
| #define | vlc_array_item_at_index(ar, idx) |
Typedefs | |
| typedef struct vlc_array_t | vlc_array_t |
| typedef struct vlc_dictionary_entry_t | vlc_dictionary_entry_t |
| typedef struct vlc_dictionary_t | vlc_dictionary_t |
Functions | |
| static void * | realloc_down (void *ptr, size_t size) |
| static void * | realloc_or_free (void *p, size_t sz) |
| This wrapper around realloc() will free the input pointer when realloc() returns NULL. | |
| static void | vlc_array_init (vlc_array_t *p_array) |
| static void | vlc_array_clear (vlc_array_t *p_array) |
| static size_t | vlc_array_count (const vlc_array_t *p_array) |
| static const void * | vlc_array_item_at_index (const vlc_array_t *ar, size_t idx) |
| static ssize_t | vlc_array_index_of_item (const vlc_array_t *ar, const void *elem) |
| static int | vlc_array_insert (vlc_array_t *ar, void *elem, int idx) |
| static void | vlc_array_insert_or_abort (vlc_array_t *ar, void *elem, int idx) |
| static int | vlc_array_append (vlc_array_t *ar, void *elem) |
| static void | vlc_array_append_or_abort (vlc_array_t *ar, void *elem) |
| static void | vlc_array_remove (vlc_array_t *ar, size_t idx) |
| static size_t | DictHash (const char *psz_string, size_t hashsize) |
| static void | vlc_dictionary_init (vlc_dictionary_t *p_dict, size_t i_size) |
| static void | vlc_dictionary_clear (vlc_dictionary_t *p_dict, void(*pf_free)(void *p_data, void *p_obj), void *p_obj) |
| static int | vlc_dictionary_has_key (const vlc_dictionary_t *p_dict, const char *psz_key) |
| static void * | vlc_dictionary_value_for_key (const vlc_dictionary_t *p_dict, const char *psz_key) |
| static size_t | vlc_dictionary_keys_count (const vlc_dictionary_t *p_dict) |
| static bool | vlc_dictionary_is_empty (const vlc_dictionary_t *p_dict) |
| static char ** | vlc_dictionary_all_keys (const vlc_dictionary_t *p_dict) |
| static void | vlc_dictionary_insert_impl_ (vlc_dictionary_t *p_dict, const char *psz_key, void *p_value, bool rebuild) |
| static void | vlc_dictionary_insert (vlc_dictionary_t *p_dict, const char *psz_key, void *p_value) |
| static void | vlc_dictionary_remove_value_for_key (const vlc_dictionary_t *p_dict, const char *psz_key, void(*pf_free)(void *p_data, void *p_obj), void *p_obj) |
Variables | |
| static void *const | kVLCDictionaryNotFound = NULL |
This file defines functions, structures and macros for handling arrays in vlc.
| #define _ARRAY_ALLOC | ( | array, | |
| newsize | |||
| ) |
| #define _ARRAY_GROW1 | ( | array | ) |
| #define _ARRAY_SHRINK | ( | array | ) |
| #define ARRAY_APPEND | ( | array, | |
| elem | |||
| ) |
| #define ARRAY_BSEARCH | ( | array, | |
| elem, | |||
| zetype, | |||
| key, | |||
| answer | |||
| ) | BSEARCH( (array).p_elems, (array).i_size, elem, zetype, key, answer) |
| #define ARRAY_FOREACH | ( | item, | |
| array | |||
| ) |
| #define ARRAY_INIT | ( | array | ) |
| #define ARRAY_INSERT | ( | array, | |
| elem, | |||
| pos | |||
| ) |
| #define ARRAY_REMOVE | ( | array, | |
| pos | |||
| ) |
| #define ARRAY_RESET | ( | array | ) |
| #define ARRAY_VAL | ( | array, | |
| pos | |||
| ) | array.p_elems[pos] |
| #define BSEARCH | ( | entries, | |
| count, | |||
| elem, | |||
| zetype, | |||
| key, | |||
| answer | |||
| ) |
Binary search in a sorted array.
The key must be comparable by < and >
| entries | array of entries |
| count | number of entries |
| elem | key to check within an entry (like .id, or ->i_id) |
| zetype | type of the key |
| key | value of the key |
| answer | index of answer within the array. -1 if not found |
| #define DECL_ARRAY | ( | type | ) |
| #define TAB_APPEND | ( | count, | |
| tab, | |||
| p | |||
| ) | TAB_APPEND_CAST( , count, tab, p ) |
| #define TAB_CLEAN | ( | count, | |
| tab | |||
| ) |
| #define TAB_ERASE | ( | count, | |
| tab, | |||
| index | |||
| ) |
| #define TAB_INSERT | ( | count, | |
| tab, | |||
| p, | |||
| index | |||
| ) | TAB_INSERT_CAST( , count, tab, p, index ) |
| #define TYPEDEF_ARRAY | ( | type, | |
| name | |||
| ) | typedef DECL_ARRAY(type) name; |
| #define vlc_array_item_at_index | ( | ar, | |
| idx | |||
| ) |
| typedef struct vlc_array_t vlc_array_t |
| typedef struct vlc_dictionary_entry_t vlc_dictionary_entry_t |
| typedef struct vlc_dictionary_t vlc_dictionary_t |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
This wrapper around realloc() will free the input pointer when realloc() returns NULL.
The use case ptr = realloc(ptr, newsize) will cause a memory leak when ptr pointed to a heap allocation before, leaving the buffer allocated but unreferenced. vlc_realloc() is a drop-in replacement for that use case (and only that use case).
References p.
Referenced by vlc_config_create().
|
inlinestatic |
References vlc_array_t::i_count, vlc_array_t::pp_elems, and unlikely.
Referenced by dialog_add_locked(), mrl_FragmentSplit(), vlc_array_append_or_abort(), and vlc_http_cookies_store().
|
inlinestatic |
References vlc_array_append().
Referenced by ChangeFilters(), and sout_StreamChainNew().
|
inlinestatic |
References vlc_array_t::pp_elems, and vlc_array_init().
Referenced by ChangeFilters(), mrl_info_Clean(), sout_StreamChainNew(), and vlc_http_cookies_destroy().
|
inlinestatic |
|
inlinestatic |
References vlc_array_t::i_count, and vlc_array_t::pp_elems.
Referenced by dialog_remove_locked().
|
inlinestatic |
References vlc_array_t::i_count, and vlc_array_t::pp_elems.
Referenced by ChangeFilters(), fingerprint_request_New(), libvlc_InternalDialogInit(), mrl_info_Init(), sout_StreamChainNew(), vlc_array_clear(), and vlc_http_cookies_new().
|
inlinestatic |
References vlc_array_t::i_count, vlc_array_t::pp_elems, and unlikely.
Referenced by vlc_array_insert_or_abort().
|
inlinestatic |
References vlc_array_insert().
|
inlinestatic |
References vlc_array_t::pp_elems.
|
inlinestatic |
References vlc_array_t::i_count, likely, and vlc_array_t::pp_elems.
Referenced by dialog_remove_locked(), and vlc_http_cookies_store().
|
inlinestatic |
References count, vlc_dictionary_t::i_size, vlc_dictionary_t::p_entries, vlc_dictionary_entry_t::p_next, vlc_dictionary_entry_t::psz_key, strdup(), unlikely, and vlc_dictionary_keys_count().
Referenced by vlc_meta_CopyExtraNames(), and vlc_meta_Merge().
|
inlinestatic |
|
inlinestatic |
References DictHash(), vlc_dictionary_t::i_size, vlc_dictionary_t::p_entries, vlc_dictionary_entry_t::p_next, and vlc_dictionary_entry_t::psz_key.
Referenced by AddAlbumCache().
|
inlinestatic |
References vlc_dictionary_t::i_size, and vlc_dictionary_t::p_entries.
Referenced by input_fetcher_New(), vlc_dictionary_insert_impl_(), and vlc_meta_New().
|
inlinestatic |
References vlc_dictionary_insert_impl_().
Referenced by AddAlbumCache(), and vlc_meta_InsertExtra().
|
inlinestatic |
References count, DictHash(), vlc_dictionary_t::i_size, vlc_dictionary_t::p_entries, vlc_dictionary_entry_t::p_next, vlc_dictionary_entry_t::p_value, vlc_dictionary_entry_t::psz_key, strdup(), vlc_dictionary_clear(), vlc_dictionary_init(), and vlc_dictionary_insert_impl_().
Referenced by vlc_dictionary_insert(), and vlc_dictionary_insert_impl_().
|
inlinestatic |
References vlc_dictionary_t::i_size, and vlc_dictionary_t::p_entries.
|
inlinestatic |
References count, vlc_dictionary_t::i_size, vlc_dictionary_t::p_entries, and vlc_dictionary_entry_t::p_next.
Referenced by vlc_dictionary_all_keys(), and vlc_meta_GetExtraCount().
|
inlinestatic |
|
inlinestatic |
References DictHash(), vlc_dictionary_t::i_size, kVLCDictionaryNotFound, vlc_dictionary_t::p_entries, vlc_dictionary_entry_t::p_next, vlc_dictionary_entry_t::p_value, and vlc_dictionary_entry_t::psz_key.
Referenced by ReadAlbumCache(), vlc_meta_GetExtra(), vlc_meta_Merge(), and vlc_meta_SetExtraWithPriority().
|
static |
Referenced by vlc_dictionary_value_for_key(), and vlc_meta_SetExtraWithPriority().