<URL: http://bugs.freeciv.org/Ticket/Display.html?id=40676 >

> [...@domaintje.com - Sat Jan 24 18:48:35 2009]:
> Freeciv crashed with the following error:
>    civclient: goto.c:767: fill_client_goto_parameter: Assertion
> `*connect_initial == 0' failed.
> [...]
> I have been able to replicate this crash three times using a saved
> game,
> which I will attach once a ticket has been created.  To replicate the
> crash:
>    1. Start the game as the Viking player
>    2. Select the worker located directly south of Ribe
>    3. Hit control-shift-i
> A backtrace is attached.

Thanks for the report. I have confirmed the crash when using
ctrl-shift-i (connect irrigation) with a worker initially on
a tile with a mine. The attached patch "fixes" the assertion
failure, though I am not sure how correct it is. For example
despite the fact that get_activity_time() is trying to
indicate that mines should not be removed by the connection,
with this patch the client will happily connect over a mine
(removing it in the process). It's hard for me to follow what
the changes in 18010 (where this code was first introduced)
are trying to do; I'll think about it more, or hopefully some-
one more versed in this part of the codebase will give a hint
as to a more correct solution.

diff --git a/client/goto.c b/client/goto.c
index 240e76a..fd4342b 100644
--- a/client/goto.c
+++ b/client/goto.c
@@ -764,7 +764,7 @@ static void fill_client_goto_parameter(struct unit *punit,
     } else {
       /* otherwise moves_left_initially = punit->moves_left (default) */
-      assert(*connect_initial == 0);
+      *connect_initial = 0;
   case HOVER_NUKE:
Freeciv-dev mailing list

Reply via email to