version 1.49, 2013/04/01 15:29:39
|
version 1.50, 2013/04/02 11:56:33
|
Line 1074
|
Line 1074
|
#define removeObjectFromList(list, object) do { \ |
#define removeObjectFromList(list, object) do { \ |
ifIsList(list) \ |
ifIsList(list) \ |
{ \ |
{ \ |
if ((*object).objet == NULL) \ |
if ((*list).objet != NULL) \ |
{ \ |
{ \ |
struct_objet *__tmp_object; \ |
struct_liste_chainee *__current; \ |
if ((__tmp_object = copie_objet(list, 'N')) == NULL) \ |
struct_liste_chainee *__previous; \ |
systemError("Memory allocation error"); \ |
__current = (*list).objet; \ |
liberation(object); \ |
__previous = NULL; \ |
object = __tmp_object; \ |
if ((*__current).donnee == object) \ |
\ |
{ \ |
\ |
(*list).objet = (*__current).suivant; \ |
\ |
} \ |
\ |
else \ |
} \ |
{ \ |
|
while(__current != NULL) \ |
|
{ \ |
|
if ((*__current).donnee == object) \ |
|
{ \ |
|
(*__previous).suivant = (*__current).suivant; \ |
|
break; \ |
|
} \ |
|
__previous = __current; \ |
|
__current = (*__current).suivant; \ |
|
} \ |
|
} \ |
|
liberation((*__current).donnee); \ |
|
free(__current); \ |
|
} \ |
} \ |
} \ |
else executionError("Type mistmatch error"); } while(0) |
else executionError("Type mistmatch error"); } while(0) |
|
|