Se um erro ocorre ao atualizar os totais dos rendimentos isentos ou
exclusivos, liberamos a estrutura, mas não a removemos da lista. A
adição à lista deve ser a última ação, para prevenir tais erros.
isento_free(isento);
return -EINVAL;
}
- r = list_insert_ordered(&dec->isentos, isento, isento_cmp);
- if (r < 0) {
+ r = isento_totais_update(dec, isento);
+ if (r) {
isento_free(isento);
return r;
}
- r = isento_totais_update(dec, isento);
- if (r) {
+ r = list_insert_ordered(&dec->isentos, isento, isento_cmp);
+ if (r < 0) {
isento_free(isento);
return r;
}