Mercurial > projects > ldc
changeset 1247:2a92c115461d
Disabled resetting types between modules MAO (more at once). Fixes guaranteed MOA compilation segfault.
author | Tomas Lindquist Olsen <tomas.l.olsen gmail.com> |
---|---|
date | Fri, 17 Apr 2009 17:16:55 +0200 |
parents | 6ef97d65ca60 |
children | 01909bd1132c 871ae029ff49 |
files | gen/toobj.cpp ir/irdtype.cpp ir/irdtype.h |
diffstat | 3 files changed, 1 insertions(+), 38 deletions(-) [+] |
line wrap: on
line diff
--- a/gen/toobj.cpp Fri Apr 17 14:48:37 2009 +0200 +++ b/gen/toobj.cpp Fri Apr 17 17:16:55 2009 +0200 @@ -94,9 +94,8 @@ gIR = &ir; ir.dmodule = this; - // reset all IR data stored in Dsymbols and Types + // reset all IR data stored in Dsymbols IrDsymbol::resetAll(); - IrDType::resetAll(); sir->setState(&ir);
--- a/ir/irdtype.cpp Fri Apr 17 14:48:37 2009 +0200 +++ b/ir/irdtype.cpp Fri Apr 17 17:16:55 2009 +0200 @@ -2,33 +2,7 @@ #include "ir/ir.h" #include "ir/irdtype.h" -std::set<IrDType*> IrDType::list; - -void IrDType::resetAll() -{ - std::set<IrDType*>::iterator it; - for(it = list.begin(); it != list.end(); ++it) - (*it)->reset(); -} - IrDType::IrDType() { - assert(list.insert(this).second); - reset(); -} - -IrDType::IrDType(const IrDType& s) -{ - assert(list.insert(this).second); - type = s.type; -} - -IrDType::~IrDType() -{ - list.erase(this); -} - -void IrDType::reset() -{ type = NULL; }
--- a/ir/irdtype.h Fri Apr 17 14:48:37 2009 +0200 +++ b/ir/irdtype.h Fri Apr 17 17:16:55 2009 +0200 @@ -9,17 +9,7 @@ struct IrDType { - static std::set<IrDType*> list; - static void resetAll(); - - // overload all of these to make sure - // the static list is up to date IrDType(); - IrDType(const IrDType& s); - ~IrDType(); - - void reset(); - llvm::PATypeHolder* type; };