<URL: http://bugs.freeciv.org/Ticket/Display.html?id=40020 >
Jason Short wrote:
> make_contact kills the unit because of the broken treaty and bouncing
> (strange in itself but whatever). Then since maybe_make_contact doesn't
> use a proper iterator it breaks the loop. Attached patch should fix it
> for 2.1 and most likely 2.2/trunk.
That looks like it! Of course, it *was* a proper iterator right up until
somebody added code to wipe an unrelated unit of another player that
happens to be in a stack with a player that canceled a treaty....
In this case, the Indian player's last settler. Causing the Indian player
to die! Good thing this is probably a rare event.
So, let's consider this a temporary patch until bounce_unit() -- or its
caller -- is fixed. What a terrible fragile logic mess!
Freeciv-dev mailing list