- Removed -fno-strict-aliasing from the GCC flags for ZDoom and fixed the

issues that caused its inclusion. Is an optimized GCC build any faster
  for being able to use strict aliasing rules? I dunno. It's still slower
  than a VC++ build.
  
  I did run into two cases where TAutoSegIterator caused intractable problems
  with breaking strict aliasing rules, so I removed the templating from it,
  and the caller is now responsible for casting the probe value from void *.
- Removed #include "autosegs.h" from several files that did not need it
  (in particular, dobject.h when not compiling with VC++).


SVN r1743 (trunk)
This commit is contained in:
Randy Heit 2009-08-02 03:38:57 +00:00
commit 93202a5488
35 changed files with 298 additions and 189 deletions

View file

@ -50,6 +50,7 @@
#include "p_acs.h"
#include "doomstat.h"
#include "d_player.h"
#include "autosegs.h"
int FindEndSequence (int type, const char *picname);
@ -1434,14 +1435,14 @@ void FMapInfoParser::ParseMapDefinition(level_info_t &info)
}
else
{
TAutoSegIterator<FMapOptInfo*, &YRegHead, &YRegTail> probe;
FAutoSegIterator probe(YRegHead, YRegTail);
bool success = false;
while (++probe != NULL)
while (*++probe != NULL)
{
if (sc.Compare(probe->name))
if (sc.Compare(((FMapOptInfo *)(*probe))->name))
{
probe->handler(*this, &info);
((FMapOptInfo *)(*probe))->handler(*this, &info);
success = true;
break;
}