[Freeciv-Dev] Re: improper access of iterators
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Raimar Falke wrote:
>
> On Sun, Aug 26, 2001 at 05:40:42PM -0400, Justin Moore wrote:
> for(;;) {
> int changed=0;
> unit_list_iterate(pcity->units_supported, punit)
> if (some_condition) {
> handle_unit_disband_safe(pplayer, &pack);
> city_refresh(pcity);
> ai_fix_unhappy(pcity);
> changed=1;
> break;
> }
> unit_list_iterate_end;
> if(changed) break;
> }
>
> This looks save to me but is a bit ugly.
The same can be accomplished with a single GOTO:
start_over:
unit_list_iterate(pcity->units_supported, punit)
if (some_condition) {
handle_unit_disband_safe(pplayer, &pack, &myiter);
city_refresh(pcity);
ai_fix_unhappy(pcity);
goto start_over; /* use of goto saves ugly loop */
}
unit_list_iterate_end;
jason
|
|