Complete.Org: Mailing Lists: Archives: freeciv-dev: July 2001:
[Freeciv-Dev] Re: Crash in 7-27-2001 CVS GTK+ client (PR#869)
Home

[Freeciv-Dev] Re: Crash in 7-27-2001 CVS GTK+ client (PR#869)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: kevin@xxxxxxxxxxxxxx
Cc: freeciv-dev@xxxxxxxxxxx, bugs@xxxxxxxxxxxxxxxxxxx
Subject: [Freeciv-Dev] Re: Crash in 7-27-2001 CVS GTK+ client (PR#869)
From: Gaute B Strokkenes <gs234@xxxxxxxxx>
Date: Sun, 29 Jul 2001 13:50:35 +0200

On Sat, 28 Jul 2001, kevin@xxxxxxxxxxxxxx wrote:
> Full_Name: Kevin Brown
> Version: CVS Jul-27-2001
> Distribution: Built from source
> Client: Gtk+
> OS: Mandrake 6.1 (heavily modified), gcc 2.95.2
> Submission from: (NULL) (24.11.140.23)
> 
> 
> Moving the map with the scrollbars to the edge of the map will cause
> the client to crash.  The problem was that the derived 'x' value in
> get_drawn_char (as called from get_drawn) would be out of bounds
> with respect to the map dimensions.  The following patch I developed
> appears to fix it.  I believe the patch is correct since the
> intention is to have the map "wrap around" in the x direction but
> not the y direction.
> 
> Given the nature of the bug, I wouldn't be surprised if it manifests
> itself in all versions of the client.
> 
> --- client/goto.c.goto  Sat Jun 30 04:37:43 2001
> +++ client/goto.c       Sat Jul 28 21:16:40 2001
> @@ -631,6 +631,9 @@
>      dir = 7 - dir;
>    }
>  
> +  if (x < 0) x += map.xsize;
> +  if (x >= map.xsize) x -= map.xsize;
> +
>    return goto_map.drawn[x] + y*4 + dir;
>  }

I don't get it.  This function calls normalize_map_pos(), which does
(or is supposed to do, at least) precisely the same thing.

-- 
Big Gaute                               http://www.srcf.ucam.org/~gs234/
I am a traffic light, and Alan Ginsberg kidnapped my laundry in 1927!


[Prev in Thread] Current Thread [Next in Thread]