Crossfire Server, Branches 1.12
R18729
|
#include <string.h>
#include <stdlib.h>
#include <stdint.h>
#include <autoconf.h>
#include <hashtable.h>
Go to the source code of this file.
Functions | |
void | add_ptr_assoc (ptr_assoc **hash_table, void *key, void *value) |
void * | find_assoc_value (ptr_assoc **hash_table, void *key) |
static ptr_assoc * | find_ptr_assoc (ptr_assoc **hash_table, void *key) |
void | free_ptr_assoc (ptr_assoc **hash_table, void *key) |
static int | hashptr (void *ptr) |
void | init_ptr_assoc_table (ptr_assoc **hash_table) |
static ptr_assoc * | new_ptr_assoc (void *key, void *value) |
void add_ptr_assoc | ( | ptr_assoc ** | hash_table, |
void * | key, | ||
void * | value | ||
) |
Adds a value to a hash table which one can lookup with key.
hash_table | Pointer to the hash table to add to. |
key | The key to lookup by in the association. |
value | The value to store with the key. |
Definition at line 109 of file hashtable.c.
References _ptr_assoc::array, hashptr(), _ptr_assoc::key, new_ptr_assoc(), _ptr_assoc::next, _ptr_assoc::previous, and _ptr_assoc::value.
Referenced by add_map_assoc(), and add_object_assoc().
void* find_assoc_value | ( | ptr_assoc ** | hash_table, |
void * | key | ||
) |
Find the value associated with a given key.
hash_table | Pointer to the hash table to search. |
key | The key to lookup by in the association. |
Definition at line 205 of file hashtable.c.
References find_ptr_assoc(), and _ptr_assoc::value.
Referenced by find_assoc_pymap(), and find_assoc_pyobject().
Find the ptr_assoc with a given key.
hash_table | Pointer to the hash table to search. |
key | The key to lookup by in the association. |
Definition at line 168 of file hashtable.c.
References hashptr(), _ptr_assoc::key, and _ptr_assoc::next.
Referenced by find_assoc_value(), and free_ptr_assoc().
void free_ptr_assoc | ( | ptr_assoc ** | hash_table, |
void * | key | ||
) |
Remove the association with a given key.
hash_table | Pointer to the hash table to search. |
key | The key to lookup by in the association. |
Definition at line 222 of file hashtable.c.
References _ptr_assoc::array, find_ptr_assoc(), _ptr_assoc::next, and _ptr_assoc::previous.
Referenced by free_map_assoc(), and free_object_assoc().
|
static |
Hashing-function used by the pointer association library. Currently just takes the pointer modulus the table size (which should be a prime number).
ptr | The pointer to hash. |
Definition at line 72 of file hashtable.c.
References PTR_ASSOC_TABLESIZE.
Referenced by add_ptr_assoc(), and find_ptr_assoc().
void init_ptr_assoc_table | ( | ptr_assoc ** | hash_table | ) |
Initialises the hash table for a pointer association table.
hash_table | Pointer to the hash table to initialise. |
Definition at line 57 of file hashtable.c.
References hash_table, and PTR_ASSOC_TABLESIZE.
Referenced by init_map_assoc_table(), and init_object_assoc_table().
|
static |
Allocates and initialises a new ptr_assoc structure.
key | The key to lookup by in the association. |
value | The value to store with the key. |
Definition at line 87 of file hashtable.c.
References _ptr_assoc::array, _ptr_assoc::key, _ptr_assoc::next, _ptr_assoc::previous, and _ptr_assoc::value.
Referenced by add_ptr_assoc().