X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/85b6c08c26f9da9041c315d3e9cbd4f20f8db9ff..00f2021a5b4cf37f52dab7839d0d29505a60e673:/src/xbt/dynar.cpp diff --git a/src/xbt/dynar.cpp b/src/xbt/dynar.cpp index 4e84015b48..c26c077443 100644 --- a/src/xbt/dynar.cpp +++ b/src/xbt/dynar.cpp @@ -1,6 +1,6 @@ /* a generic DYNamic ARray implementation. */ -/* Copyright (c) 2004-2021. The SimGrid Team. +/* Copyright (c) 2004-2023. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -118,19 +118,6 @@ void xbt_dynar_reset(xbt_dynar_t dynar) dynar->used = 0; } -/** - * Shrinks (reduces) the dynar by removing empty slots in the internal storage to save memory. - * If @c empty_slots_wanted is not zero, this operation preserves that amount of empty slot, for fast future additions. - * Note that if @c empty_slots_wanted is large enough, the internal array is expanded instead of shrunk. - * - * @param dynar a dynar - * @param empty_slots_wanted number of empty slots elements that can be inserted the internal storage without resizing it - */ -void xbt_dynar_shrink(xbt_dynar_t dynar, int empty_slots_wanted) -{ - _xbt_dynar_resize(dynar, dynar->used + empty_slots_wanted); -} - /** @brief Destructor: kilkil a dynar and its content. */ void xbt_dynar_free(xbt_dynar_t* dynar) { @@ -205,7 +192,6 @@ void* xbt_dynar_insert_at_ptr(xbt_dynar_t dynar, int idx) void *res; unsigned long old_used; unsigned long new_used; - long nb_shift; _sanity_check_dynar(dynar); _sanity_check_idx(idx); @@ -215,9 +201,7 @@ void* xbt_dynar_insert_at_ptr(xbt_dynar_t dynar, int idx) _xbt_dynar_expand(dynar, new_used); - nb_shift = old_used - idx; - - if (nb_shift>0) { + if (long nb_shift = old_used - idx; nb_shift > 0) { memmove(_xbt_dynar_elm(dynar, idx + 1), _xbt_dynar_elm(dynar, idx), nb_shift * dynar->elmsize); } @@ -256,9 +240,7 @@ void xbt_dynar_remove_at(xbt_dynar_t dynar, int idx, void* object) dynar->free_f(_xbt_dynar_elm(dynar, idx)); } - unsigned long nb_shift = dynar->used - 1 - idx; - - if (nb_shift) { + if (unsigned long nb_shift = dynar->used - 1 - idx; nb_shift > 0) { unsigned long offset = nb_shift * dynar->elmsize; memmove(_xbt_dynar_elm(dynar, idx), _xbt_dynar_elm(dynar, idx + 1), offset); } @@ -371,15 +353,6 @@ void xbt_dynar_map(const_xbt_dynar_t dynar, void_f_pvoid_t op) } @endverbatim * - * And now, a function to sort a dynar of MSG hosts depending on their speed: - * @verbatim - int cmpfunc(const MSG_host_t a, const MSG_host_t b) { - MSG_host_t hostA = *(MSG_host_t*)a; - MSG_host_t hostB = *(MSG_host_t*)b; - return MSG_host_get_speed(hostA) - MSG_host_get_speed(hostB); - } - @endverbatim - * * @param dynar the dynar to sort * @param compar_fn comparison function of type (int (compar_fn*) (const void*) (const void*)). */ @@ -388,20 +361,3 @@ void xbt_dynar_sort(const_xbt_dynar_t dynar, int_f_cpvoid_cpvoid_t compar_fn) if (dynar->data != nullptr) qsort(dynar->data, dynar->used, dynar->elmsize, compar_fn); } - -/** @brief Transform a dynar into a nullptr terminated array. - * - * @param dynar the dynar to transform - * @return pointer to the first element of the array - * - * Note: The dynar won't be usable afterwards. - */ -void* xbt_dynar_to_array(xbt_dynar_t dynar) // XBT_ATTRIB_DEPRECATED_v331 -{ - void* res; - xbt_dynar_shrink(dynar, 1); - memset(xbt_dynar_push_ptr(dynar), 0, dynar->elmsize); - res = dynar->data; - xbt_free(dynar); - return res; -}