*/
xbt_swag_t xbt_swag_new(size_t offset)
{
xbt_swag_t swag = xbt_new0(s_xbt_swag_t, 1);
*/
xbt_swag_t xbt_swag_new(size_t offset)
{
xbt_swag_t swag = xbt_new0(s_xbt_swag_t, 1);
* kilkil a swag but not it's content. If you do not understand why
* xbt_swag_free should not free its content, don't use swags.
*/
* kilkil a swag but not it's content. If you do not understand why
* xbt_swag_free should not free its content, don't use swags.
*/
* \param obj the objet to remove from the swag
* \param swag a swag
* \return \a obj if it was in the \a swag and NULL otherwise
* \param obj the objet to remove from the swag
* \param swag a swag
* \return \a obj if it was in the \a swag and NULL otherwise
- if(!xbt_swag_belongs(obj, swag)) /* Trying to remove an object that
- was not in this swag */
- return NULL;
+ if (!xbt_swag_belongs(obj, swag)) /* Trying to remove an object that
+ was not in this swag */
+ return NULL;
- if (swag->head == swag->tail) { /* special case */
- if (swag->head != obj) /* Trying to remove an object that was not in this swag */
+ if (swag->head == swag->tail) { /* special case */
+ if (swag->head != obj) /* Trying to remove an object that was not in this swag */
swag->head = NEXT(obj, offset);
PREV(swag->head, offset) = NULL;
NEXT(obj, offset) = NULL;
swag->head = NEXT(obj, offset);
PREV(swag->head, offset) = NULL;
NEXT(obj, offset) = NULL;
swag->tail = PREV(obj, offset);
NEXT(swag->tail, offset) = NULL;
PREV(obj, offset) = NULL;
swag->tail = PREV(obj, offset);
NEXT(swag->tail, offset) = NULL;
PREV(obj, offset) = NULL;
NEXT(PREV(obj, offset), offset) = NEXT(obj, offset);
PREV(NEXT(obj, offset), offset) = PREV(obj, offset);
PREV(obj, offset) = NEXT(obj, offset) = NULL;
NEXT(PREV(obj, offset), offset) = NEXT(obj, offset);
PREV(NEXT(obj, offset), offset) = PREV(obj, offset);
PREV(obj, offset) = NEXT(obj, offset) = NULL;
swag->head = swag->tail = NULL;
PREV(obj, offset) = NEXT(obj, offset) = NULL;
} else {
swag->head = swag->tail = NULL;
PREV(obj, offset) = NEXT(obj, offset) = NULL;
} else {
int xbt_swag_belongs(void *obj, xbt_swag_t swag)
{
return ((NEXT(obj, swag->offset)) || (PREV(obj, swag->offset))
int xbt_swag_belongs(void *obj, xbt_swag_t swag)
{
return ((NEXT(obj, swag->offset)) || (PREV(obj, swag->offset))
- obj1 = calloc(1,sizeof(s_shmurtz_t));
- obj2 = calloc(1,sizeof(s_shmurtz_t));
+ obj1 = xbt_new0(s_shmurtz_t, 1);
+ obj2 = xbt_new0(s_shmurtz_t, 1);
- xbt_test_log3("%p %p %ld\n",obj1,&(obj1->setB),
- (long)((char *)&(obj1->setB) - (char *)obj1));
+ xbt_test_log3("%p %p %ld\n", obj1, &(obj1->setB),
+ (long) ((char *) &(obj1->setB) - (char *) obj1));
- setA = xbt_swag_new(xbt_swag_offset(*obj1,setA));
- setB = xbt_swag_new(xbt_swag_offset(*obj1,setB));
+ setA = xbt_swag_new(xbt_swag_offset(*obj1, setA));
+ setB = xbt_swag_new(xbt_swag_offset(*obj1, setB));
xbt_swag_insert(obj1, setA);
xbt_swag_insert(obj1, setB);
xbt_swag_insert(obj1, setA);
xbt_swag_insert(obj1, setB);
xbt_swag_insert(obj2, setB);
xbt_swag_remove(obj1, setB);
xbt_swag_insert(obj2, setB);
xbt_swag_remove(obj1, setB);
- xbt_swag_foreach(obj,setA) {
- xbt_test_log1("Saw: %s",obj->name);
+ xbt_swag_foreach(obj, setA) {
+ xbt_test_log1("Saw: %s", obj->name);
- xbt_swag_foreach(obj,setB) {
- xbt_test_log1("Saw: %s",obj->name);
+ xbt_swag_foreach(obj, setB) {
+ xbt_test_log1("Saw: %s", obj->name);
- xbt_test_assert( xbt_swag_belongs(obj1,setA));
- xbt_test_assert( xbt_swag_belongs(obj2,setA));
+ xbt_test_assert(xbt_swag_belongs(obj1, setA));
+ xbt_test_assert(xbt_swag_belongs(obj2, setA));
- xbt_test_assert(! xbt_swag_belongs(obj1,setB));
- xbt_test_assert( xbt_swag_belongs(obj2,setB));
+ xbt_test_assert(!xbt_swag_belongs(obj1, setB));
+ xbt_test_assert(xbt_swag_belongs(obj2, setB));