Complete.Org: Mailing Lists: Archives: freeciv-dev: August 2001:
[Freeciv-Dev] Re: [PATCH] Small improvement at genlist and maphand
Home

[Freeciv-Dev] Re: [PATCH] Small improvement at genlist and maphand

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Trent Piepho <xyzzy@xxxxxxxxxxxxx>
Cc: rf13@xxxxxxxxxxxxxxxxxxxxxx, freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: [PATCH] Small improvement at genlist and maphand
From: Kevin Brown <kevin@xxxxxxxxxxxxxx>
Date: Tue, 21 Aug 2001 23:45:21 -0700

Trent Piepho <xyzzy@xxxxxxxxxxxxx> wrote:
> On Tue, 21 Aug 2001, Raimar Falke wrote:
> > There are further optimizations possible:
> >  - what about passing struct tile * instead of (int x, int y)?
> >  - what about using pointers instead of ids in structs?
> 
> Those are probably good ideas.  One thing you have to watch out for is
> dangling pointers.  When a unit is deleted, you're not allowed to have any
> pointers to it anymore.  The main purpose of the function game_remove_unit()
> is to find all these pointers in the various lists and remove them.
> 
> If you stick pointers in other places, you need to be assured that you can
> remove them when the unit/city goes away.  In some cases, like the GUI code,
> this is very hard to do.  So you don't do it, and use an ID instead.

The scary thing is that this is a very strong justification for using
C++, with its automatic constructors and destructors.  But I don't
imagine anyone is interested in rewriting Freeciv in C++.  :-)


-- 
Kevin Brown                                           kevin@xxxxxxxxxxxxxx

    It's really hard to define what "unexpected behavior" means when you're
                       talking about Windows.


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