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;
/**
* 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;
}
* 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)
{
*
* 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)
{
* 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);
/**
* \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;
*
* 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)
{
*
* 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));
}
* \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);