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;
 };