/* a generic DYNamic ARray implementation. */
-/* Copyright (c) 2004-2017. The SimGrid Team.
+/* Copyright (c) 2004-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
{
xbt_dynar_reset(dynar);
if (dynar)
- free(dynar->data);
+ xbt_free(dynar->data);
}
/** @brief Destructor of the structure not touching to the content
{
if (dynar && *dynar) {
xbt_dynar_t d = *dynar;
- free(d->data);
- free(d);
+ xbt_free(d->data);
+ xbt_free(d);
*dynar = nullptr;
}
}
}
THROWF(not_found_error, 0, "Element %p not part of dynar %p", elem, dynar);
- return -1; // Won't happen, just to please eclipse
+ return 0; // Won't happen, just to please eclipse
}
/** @brief Returns the position of the element in the dynar (or -1 if not found)
xbt_dynar_shrink(dynar, 1);
memset(xbt_dynar_push_ptr(dynar), 0, dynar->elmsize);
res = dynar->data;
- free(dynar);
+ xbt_free(dynar);
return res;
}
xbt_test_add("==== Traverse the empty dynar");
d = xbt_dynar_new(sizeof(int), nullptr);
xbt_dynar_foreach(d, cursor, cpt) {
- xbt_test_assert(FALSE, "Damnit, there is something in the empty dynar");
+ xbt_test_assert(false, "Damnit, there is something in the empty dynar");
}
xbt_dynar_free(&d); /* This code is used both as example and as regression test, so we try to */
xbt_dynar_free(&d); /* free the struct twice here to check that it's ok, but freeing it only once */
xbt_test_add("==== Traverse the empty dynar");
xbt_dynar_t d = xbt_dynar_new(sizeof(char*), &xbt_free_ref);
xbt_dynar_foreach(d, iter, s1) {
- xbt_test_assert(FALSE, "Damnit, there is something in the empty dynar");
+ xbt_test_assert(false, "Damnit, there is something in the empty dynar");
}
xbt_dynar_free(&d); /* This code is used both as example and as regression test, so we try to */
xbt_dynar_free(&d); /* free the struct twice here to check that it's ok, but freeing it only once */
snprintf(buf,1023, "%d", cpt);
xbt_dynar_shift(d, &s2);
xbt_test_assert(not strcmp(buf, s2), "The retrieved value is not the same than the injected one (%s!=%s)", buf, s2);
- free(s2);
+ xbt_free(s2);
}
xbt_dynar_free(&d); /* This code is used both as example and as regression test, so we try to */
xbt_dynar_free(&d); /* free the struct twice here to check that it's ok, but freeing it only once */
snprintf(buf,1023, "%d", cpt);
xbt_dynar_pop(d, &s2);
xbt_test_assert(not strcmp(buf, s2), "The retrieved value is not the same than the injected one (%s!=%s)", buf, s2);
- free(s2);
+ xbt_free(s2);
}
/* 4. Free the resources */
xbt_dynar_free(&d); /* This code is used both as example and as regression test, so we try to */
xbt_dynar_shift(d, &s2);
xbt_test_assert(not strcmp(buf, s2),
"The retrieved value is not the same than the injected one at the begining (%s!=%s)", buf, s2);
- free(s2);
+ xbt_free(s2);
}
for (int cpt = (NB_ELEM / 5) - 1; cpt >= 0; cpt--) {
snprintf(buf,1023, "%d", cpt);
xbt_dynar_shift(d, &s2);
xbt_test_assert(not strcmp(buf, s2),
"The retrieved value is not the same than the injected one in the middle (%s!=%s)", buf, s2);
- free(s2);
+ xbt_free(s2);
}
for (int cpt = NB_ELEM / 2; cpt < NB_ELEM; cpt++) {
snprintf(buf,1023, "%d", cpt);
xbt_dynar_shift(d, &s2);
xbt_test_assert(not strcmp(buf, s2),
"The retrieved value is not the same than the injected one at the end (%s!=%s)", buf, s2);
- free(s2);
+ xbt_free(s2);
}
xbt_dynar_free(&d); /* This code is used both as example and as regression test, so we try to */
xbt_dynar_free(&d); /* free the struct twice here to check that it's ok, but freeing it only once */
snprintf(buf,1023, "%d", cpt);
xbt_dynar_remove_at(d, 2 * (NB_ELEM / 5), &s2);
xbt_test_assert(not strcmp(buf, s2), "Remove a bad value. Got %s, expected %s", s2, buf);
- free(s2);
+ xbt_free(s2);
}
xbt_dynar_free(&d); /* end_of_doxygen */
}