/* dict - a generic dictionary, variation over hash table */
-/* Copyright (c) 2004-2014. The SimGrid Team.
+/* Copyright (c) 2004-2015. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#include "xbt/ex.h"
#include "xbt/log.h"
#include "xbt/mallocator.h"
-#include "xbt_modinter.h"
+#include "src/xbt_modinter.h"
#include "xbt/str.h"
#include "dict_private.h"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_dict, xbt,
- "Dictionaries provide the same functionalities than hash tables");
+ "Dictionaries provide the same functionalities as hash tables");
/**
* \brief Constructor
* \return pointer to the destination
- * \see xbt_dict_free()
+ * \see xbt_dict_new_homogenous(), xbt_dict_free()
*
* Creates and initialize a new dictionary with a default hashtable size.
* The dictionary is heterogeneous: each element can have a different free
* \param key_len the size of the \a key
* \param data the data to add in the dict
* \param free_ctn function to call with (\a data as argument) when
- * \a data is removed from the dictionary
+ * \a data is removed from the dictionary. This param
+ * will only be considered when the dict was instantiated with
+ * xbt_dict_new() and not xbt_dict_new_homogeneous()
*
* Set the \a data in the structure under the \a key, which can be any kind
* of data, as long as its length is provided in \a key_len.
* \param key the key to set the new data
* \param data the data to add in the dict
* \param free_ctn function to call with (\a data as argument) when
- * \a data is removed from the dictionary
+ * \a data is removed from the dictionary. This param
+ * will only be considered when the dict was instantiated with
+ * xbt_dict_new() and not xbt_dict_new_homogeneous()
*
* set the \a data in the structure under the \a key, which is a
* null terminated string.
#ifdef SIMGRID_TEST
#include "xbt.h"
#include "xbt/ex.h"
-#include "portable.h"
+#include "src/portable.h"
+
+#define PRINTF_STR(a) (a)?:"(null)"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(xbt_dict);
{
xbt_dict_cursor_t cursor;
char *key;
- _XBT_GNUC_UNUSED char *key2;
+ XBT_ATTRIB_UNUSED char *key2;
void *data;
int effective = 0;
fill(&head, homogeneous);
count_check_get_key(head, 7);
xbt_test_add("Change 123 to 'Changed 123'");
- xbt_dict_set(head, "123", strdup("Changed 123"), free_f);
+ xbt_dict_set(head, "123", xbt_strdup("Changed 123"), free_f);
count_check_get_key(head, 7);
xbt_test_add("Change 123 back to '123'");
- xbt_dict_set(head, "123", strdup("123"), free_f);
+ xbt_dict_set(head, "123", xbt_strdup("123"), free_f);
count_check_get_key(head, 7);
xbt_test_add("Change 12a to 'Dummy 12a'");
- xbt_dict_set(head, "12a", strdup("Dummy 12a"), free_f);
+ xbt_dict_set(head, "12a", xbt_strdup("Dummy 12a"), free_f);
count_check_get_key(head, 7);
xbt_test_add("Change 12a to '12a'");
- xbt_dict_set(head, "12a", strdup("12a"), free_f);
+ xbt_dict_set(head, "12a", xbt_strdup("12a"), free_f);
count_check_get_key(head, 7);
xbt_test_add("Traverse the resulting dictionary");