A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot//simgrid/simgrid
[simgrid.git]
/
include
/
xbt
/
dynar.h
diff --git
a/include/xbt/dynar.h
b/include/xbt/dynar.h
index
aa03316
..
210efb7
100644
(file)
--- a/
include/xbt/dynar.h
+++ b/
include/xbt/dynar.h
@@
-88,7
+88,6
@@
XBT_PUBLIC(void) xbt_dynar_dump(xbt_dynar_t dynar);
XBT_PUBLIC(void) xbt_dynar_get_cpy(const xbt_dynar_t dynar,
const unsigned long idx,
void *const dst);
XBT_PUBLIC(void) xbt_dynar_get_cpy(const xbt_dynar_t dynar,
const unsigned long idx,
void *const dst);
-
XBT_PUBLIC(void) xbt_dynar_set(xbt_dynar_t dynar, const int idx,
const void *src);
XBT_PUBLIC(void) xbt_dynar_replace(xbt_dynar_t dynar,
XBT_PUBLIC(void) xbt_dynar_set(xbt_dynar_t dynar, const int idx,
const void *src);
XBT_PUBLIC(void) xbt_dynar_replace(xbt_dynar_t dynar,
@@
-105,8
+104,9
@@
XBT_PUBLIC(unsigned int) xbt_dynar_search(xbt_dynar_t const dynar,
XBT_PUBLIC(int) xbt_dynar_member(xbt_dynar_t const dynar, void *elem);
XBT_PUBLIC(void) xbt_dynar_sort(xbt_dynar_t const dynar,
int_f_cpvoid_cpvoid_t compar_fn);
XBT_PUBLIC(int) xbt_dynar_member(xbt_dynar_t const dynar, void *elem);
XBT_PUBLIC(void) xbt_dynar_sort(xbt_dynar_t const dynar,
int_f_cpvoid_cpvoid_t compar_fn);
-XBT_INLINE
int
xbt_dynar_compare(xbt_dynar_t d1, xbt_dynar_t d2,
+XBT_INLINE
XBT_PUBLIC(int)
xbt_dynar_compare(xbt_dynar_t d1, xbt_dynar_t d2,
int(*compar)(const void *, const void *));
int(*compar)(const void *, const void *));
+XBT_INLINE XBT_PUBLIC(void *) xbt_dynar_to_array (xbt_dynar_t dynar);
/** @} */
/** @defgroup XBT_dynar_perl Perl-like use of dynars
/** @} */
/** @defgroup XBT_dynar_perl Perl-like use of dynars
@@
-134,6
+134,8
@@
XBT_PUBLIC(void) xbt_dynar_map(const xbt_dynar_t dynar,
* @{
*/
* @{
*/
+XBT_INLINE XBT_PUBLIC(void *) xbt_dynar_set_at_ptr(const xbt_dynar_t dynar,
+ const unsigned long idx);
XBT_INLINE XBT_PUBLIC(void *) xbt_dynar_get_ptr(const xbt_dynar_t dynar,
const unsigned long idx);
XBT_PUBLIC(void *) xbt_dynar_insert_at_ptr(xbt_dynar_t const dynar,
XBT_INLINE XBT_PUBLIC(void *) xbt_dynar_get_ptr(const xbt_dynar_t dynar,
const unsigned long idx);
XBT_PUBLIC(void *) xbt_dynar_insert_at_ptr(xbt_dynar_t const dynar,
@@
-156,6
+158,10
@@
XBT_PUBLIC(void *) xbt_dynar_pop_ptr(xbt_dynar_t const dynar);
* @hideinitializer */
# define xbt_dynar_get_as(dynar,idx,type) \
(*(type*)xbt_dynar_get_ptr((dynar),(idx)))
* @hideinitializer */
# define xbt_dynar_get_as(dynar,idx,type) \
(*(type*)xbt_dynar_get_ptr((dynar),(idx)))
+/** @brief Quick setting of scalar content
+ * @hideinitializer */
+# define xbt_dynar_set_as(dynar,idx,type,val) \
+ (*(type*)xbt_dynar_set_at_ptr((dynar),(idx))) = val
/** @brief Quick retrieval of scalar content
* @hideinitializer */
# define xbt_dynar_getlast_as(dynar,type) \
/** @brief Quick retrieval of scalar content
* @hideinitializer */
# define xbt_dynar_getlast_as(dynar,type) \
@@
-224,7
+230,7
@@
_xbt_dynar_cursor_first(const xbt_dynar_t dynar,
if (dynar->mutex) /* ie _dynar_lock(dynar) but not public */
xbt_mutex_acquire(dynar->mutex);
if (dynar->mutex) /* ie _dynar_lock(dynar) but not public */
xbt_mutex_acquire(dynar->mutex);
- //
DEBUG1
("Set cursor on %p to the first position", (void *) dynar);
+ //
XBT_DEBUG
("Set cursor on %p to the first position", (void *) dynar);
*cursor = 0;
}
*cursor = 0;
}
@@
-234,12
+240,12
@@
_xbt_dynar_cursor_get(const xbt_dynar_t dynar,
{
if (idx >= dynar->used) {
{
if (idx >= dynar->used) {
- //
DEBUG1
("Cursor on %p already on last elem", (void *) dynar);
+ //
XBT_DEBUG
("Cursor on %p already on last elem", (void *) dynar);
if (dynar->mutex) /* unlock */
xbt_mutex_release(dynar->mutex);
return FALSE;
}
if (dynar->mutex) /* unlock */
xbt_mutex_release(dynar->mutex);
return FALSE;
}
- //
DEBUG2
("Cash out cursor on %p at %u", (void *) dynar, *idx);
+ //
XBT_DEBUG
("Cash out cursor on %p at %u", (void *) dynar, *idx);
memcpy(dst, ((char *) dynar->data) + idx * dynar->elmsize,
dynar->elmsize);
memcpy(dst, ((char *) dynar->data) + idx * dynar->elmsize,
dynar->elmsize);