[Freeciv-Dev] Re: (PR#3450) square_iterate and unreal positions
[Top] [All Lists]
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
 
On Wed, Feb 26, 2003 at 02:47:20AM -0800, Raimar Falke wrote:
> On Wed, Feb 26, 2003 at 02:28:17AM -0800, Per I. Mathisen wrote:
> > 
> > On Wed, 26 Feb 2003, Raimar Falke wrote:
> > > > > It should make the normalization before. It the code wants to pass
> > > > > non-real map positions in it has to use another macro.
> > > >
> > > > I have already proposed this, and you were against it also.Yet some
> > > > resolution is needed, and it should _not_ be to just say the caller has
> > > > to write a local loop.
> > >
> > > What about a mapview_square_iterate or unchecked_square_iterate?
> > 
> > Writing a new iterator which is exactly like the square_iterate only that
> > it doesn't have an assert is plain stupid. If the assert is that much of a
> > bother, remove it. I'm with Ross and Jason on this one.
> 
> As I said before: I'm against weaking the macro just because one user
> doesn't behave in the correct way.
Longer explanation:
There are two types of users of square_iterate:
 - first type always passed normal map positions in. To check this we
 test for this. If we avoid the check we won't notice the problem of
 non-normal positions in the first. This is bad.
 - second type may also pass non-real map positions in. These aren't
 an error here.
Solutions:
 - two macros: current and an unchecked_
 - one macro without the assert. Then the assert has to move out to
 the users of the macro. Programmers will forget to add the test -> bad
 - convert the second of users of square_iterate to the first one: it
 looks like this can be done.
So I go for the first solution.
        Raimar
-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "> WHY?! Isn't it better to put $(shell cat cscope.files) on the list of
  I only have a yellow belt in makefile kungfu.  These fancy gnu make things
  are relatively new to some of us..."
    -- Mark Frazer to Vassilii Khachaturov in linux-kernel
 
 
 
 | 
 |