X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4c07ef1267acad0364557ca2695643be18be5547..0a03cd809dd45e3645a54feffe364d8f2b33d71e:/src/xbt/dict.c diff --git a/src/xbt/dict.c b/src/xbt/dict.c index 93b29eb989..60937b3155 100644 --- a/src/xbt/dict.c +++ b/src/xbt/dict.c @@ -80,7 +80,9 @@ void xbt_dict_free(xbt_dict_t * dict) if (dict != NULL && *dict != NULL) { table_size = (*dict)->table_size; table = (*dict)->table; - for (i = 0; (*dict)->count && i < table_size; i++) { + /* Warning: the size of the table is 'table_size+1'... + * This is because table_size is used as a binary mask in xbt_dict_rehash */ + for (i = 0; (*dict)->count && i <= table_size; i++) { current = table[i]; while (current != NULL) { previous = current; @@ -98,7 +100,7 @@ void xbt_dict_free(xbt_dict_t * dict) /** * Returns the amount of elements in the dict */ -unsigned int xbt_dict_size(xbt_dict_t dict) +XBT_INLINE unsigned int xbt_dict_size(xbt_dict_t dict) { return dict->count; } @@ -295,7 +297,7 @@ XBT_INLINE void xbt_dict_set_ext(xbt_dict_t dict, * set the \a data in the structure under the \a key, which is a * null terminated string. */ -void xbt_dict_set(xbt_dict_t dict, +XBT_INLINE void xbt_dict_set(xbt_dict_t dict, const char *key, void *data, void_f_pvoid_t free_ctn) { @@ -312,7 +314,7 @@ void xbt_dict_set(xbt_dict_t dict, * * Search the given \a key. Throws not_found_error when not found. */ -void *xbt_dict_get_ext(xbt_dict_t dict, const char *key, int key_len) +XBT_INLINE void *xbt_dict_get_ext(xbt_dict_t dict, const char *key, int key_len) { @@ -362,7 +364,7 @@ void *xbt_dict_get_or_null_ext(xbt_dict_t dict, const char *key, int key_len) * * Returns NULL if the object cannot be found */ -char *xbt_dict_get_key(xbt_dict_t dict, void*data) { +char *xbt_dict_get_key(xbt_dict_t dict, const void*data) { int i; xbt_dictelm_t current; @@ -390,7 +392,7 @@ char *xbt_dict_get_key(xbt_dict_t dict, void*data) { * Check xbt_dict_get_or_null() for a version returning NULL without exception when * not found. */ -void *xbt_dict_get(xbt_dict_t dict, const char *key) +XBT_INLINE void *xbt_dict_get(xbt_dict_t dict, const char *key) { unsigned int hash_code = xbt_dict_hash(key); @@ -412,7 +414,7 @@ void *xbt_dict_get(xbt_dict_t dict, const char *key) /** * \brief like xbt_dict_get(), but returning NULL when not found */ -void *xbt_dict_get_or_null(xbt_dict_t dict, const char *key) +XBT_INLINE void *xbt_dict_get_or_null(xbt_dict_t dict, const char *key) { unsigned int hash_code = xbt_dict_hash(key); xbt_dictelm_t current; @@ -440,7 +442,7 @@ void *xbt_dict_get_or_null(xbt_dict_t dict, const char *key) * * Remove the entry associated with the given \a key (throws not_found) */ -void xbt_dict_remove_ext(xbt_dict_t dict, const char *key, int key_len) +XBT_INLINE void xbt_dict_remove_ext(xbt_dict_t dict, const char *key, int key_len) { @@ -482,7 +484,7 @@ void xbt_dict_remove_ext(xbt_dict_t dict, const char *key, int key_len) * * Remove the entry associated with the given \a key */ -void xbt_dict_remove(xbt_dict_t dict, const char *key) +XBT_INLINE void xbt_dict_remove(xbt_dict_t dict, const char *key) { xbt_dict_remove_ext(dict, key, strlen(key)); } @@ -520,7 +522,7 @@ void xbt_dict_reset(xbt_dict_t dict) * \brief Return the number of elements in the dict. * \param dict a dictionary */ -int xbt_dict_length(xbt_dict_t dict) +XBT_INLINE int xbt_dict_length(xbt_dict_t dict) { xbt_assert(dict);