(PR#9610) autosettler "territory" and danger maps

"Jason Short" <[email protected]> Sun, 19 Dec 2004 10:22:09 -0800
Newsgroups gmane.games.freeciv.ai
Message-ID <[email protected]>
<URL: http://bugs.freeciv.org/Ticket/Display.html?id=9610 >

You can't cast an int as a void* and treat it as a pointer.  This won't work on 64-bit systems 
where sizeof(int) != sizeof(void*).  (Or so I'm told; I've never actually compiled on a 64-bit 
system.)

There are two choices (unless you want to redesign the movemap to hold unit pointers 
directly and work properly with deletions).  Probably the better one is to malloc(sizeof(int)) 
and keep the unit ID in a malloced pointer.  Naturally you then have to free the pointer 
afterwards.  The other is to develop our own version of G_POINTER_TO_INT/
G_INT_TO_POINTER that could probably just be copied verbatim from the glib sources.  
Naturally then we have to make sure this macro works on any new systems that turn up in 
the future.

-jason