on between two (possibly remote) hosts.
XBT:
- - Drop simgrid::xbt::demangle. Please use boost::core::demangle instead.
+ - Drop simgrid::xbt::demangle(). Please use boost::core::demangle() instead.
+ - Drop xbt_dynar_cursor_rm(), xbt_dynar_search_or_negative(), xbt_dynar_to_array().
C binding and interface:
- Rename (lowercase) functions sg_actor_get_PID, sg_actor_get_PPID, sg_actor_by_PID.
* @skip end_of_doxygen
* @until }
*
- * Note that if you use dynars to store pointed data, the xbt_dynar_search(), xbt_dynar_search_or_negative() and
- * xbt_dynar_member() won't be for you. Instead of comparing your pointed elements, they compare the pointer to them.
- * See the documentation of xbt_dynar_search() for more info.
+ * Note that if you use dynars to store pointed data, xbt_dynar_member() won't be for you. Instead of comparing your
+ * pointed elements, it compares the pointer to them.
*/
/** @defgroup XBT_dynar_cons Dynar constructor and destructor
* @ingroup XBT_dynar
XBT_PUBLIC void xbt_dynar_insert_at(xbt_dynar_t dynar, int idx, const void* src);
XBT_PUBLIC void xbt_dynar_remove_at(xbt_dynar_t dynar, int idx, void* dst);
-XBT_PUBLIC signed int xbt_dynar_search_or_negative(const_xbt_dynar_t dynar, const void* elem);
XBT_PUBLIC int xbt_dynar_member(const_xbt_dynar_t dynar, const void* elem);
XBT_PUBLIC void xbt_dynar_sort(const_xbt_dynar_t dynar, int_f_cpvoid_cpvoid_t compar_fn);
-XBT_PUBLIC void* xbt_dynar_to_array(xbt_dynar_t dynar);
/** @} */
/** @defgroup XBT_dynar_misc Dynar miscellaneous functions
/** @defgroup XBT_dynar_cursor Cursors on dynar
* @ingroup XBT_dynar
*
- * Cursors are used to iterate over the structure. Never add elements to the DynArr during the traversal. To remove
- * elements, use the xbt_dynar_cursor_rm() function.
- *
- * Do not call these function directly, but only within the xbt_dynar_foreach macro.
+ * Cursors are used to iterate over the structure. Never add elements to the DynArr during the traversal.
*
* @{
*/
-XBT_PUBLIC void xbt_dynar_cursor_rm(xbt_dynar_t dynar, unsigned int* cursor);
-
/*
* @warning DO NOT USE THIS STRUCTURE DIRECTLY! Instead, use the public interface:
* This was made public to allow:
dynar->used--;
}
-/** @brief Returns the position of the element in the dynar (or -1 if not found)
- *
- * Beware that if your dynar contains pointed values (such as strings) instead of scalar, this function is probably not
- * what you want. Check the documentation of xbt_dynar_search() for more info.
- *
- * Note that usually, the dynar indices are unsigned integers. If you have more than 2 million elements in your dynar,
- * this very function will not work (but the other will).
- */
-signed int xbt_dynar_search_or_negative(const_xbt_dynar_t dynar, const void* elem)
-{
- for (unsigned long it = 0; it < dynar->used; it++)
- if (not memcmp(_xbt_dynar_elm(dynar, it), elem, dynar->elmsize)) {
- return it;
- }
-
- return -1;
-}
-
/** @brief Returns a boolean indicating whether the element is part of the dynar
*
* Beware that if your dynar contains pointed values (such as strings) instead of scalar, this function is probably not
- * what you want. Check the documentation of xbt_dynar_search() for more info.
+ * what you want.
*/
int xbt_dynar_member(const_xbt_dynar_t dynar, const void* elem)
{
}
}
-/** @brief Removes and free the entry pointed by the cursor
- *
- * This function can be used while traversing without problem.
- */
-void xbt_dynar_cursor_rm(xbt_dynar_t dynar, unsigned int* cursor)
-{
- xbt_dynar_remove_at(dynar, *cursor, nullptr);
- *cursor -= 1;
-}
-
/** @brief Sorts a dynar according to the function <tt>compar_fn</tt>
*
* This function simply apply the classical qsort(3) function to the data stored in the dynar.
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)
-{
- void *res;
- xbt_dynar_shrink(dynar, 1);
- memset(xbt_dynar_push_ptr(dynar), 0, dynar->elmsize);
- res = dynar->data;
- xbt_free(dynar);
- return res;
-}