changeset 725:3e143b611c1e

Fix double field toObjFile for structs with AttribDecls.
author Christian Kamm <kamm incasoftware de>
date Sat, 25 Oct 2008 22:07:20 +0200
parents 6de2ed4f0abe
children 8d46c475842a
files gen/structs.cpp
diffstat 1 files changed, 5 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/gen/structs.cpp	Sat Oct 25 18:12:07 2008 +0200
+++ b/gen/structs.cpp	Sat Oct 25 22:07:20 2008 +0200
@@ -108,19 +108,12 @@
 
     irstruct->packed = ispacked;
 
-    // fields
-    Array* arr = &sd->fields;
-    for (int k=0; k < arr->dim; k++) {
-        VarDeclaration* v = (VarDeclaration*)arr->data[k];
-        v->toObjFile(0); // TODO: multiobj
-    }
-
     bool thisModule = false;
     if (sd->getModule() == gIR->dmodule)
         thisModule = true;
 
-    // methods
-    arr = sd->members;
+    // methods, fields
+    Array* arr = sd->members;
     for (int k=0; k < arr->dim; k++) {
         Dsymbol* s = (Dsymbol*)arr->data[k];
         if (FuncDeclaration* fd = s->isFuncDeclaration()) {
@@ -128,7 +121,9 @@
                 fd->toObjFile(0); // TODO: multiobj
             }
         }
-        else if (s->isAttribDeclaration()) {
+        else if (s->isAttribDeclaration() ||
+                 s->isVarDeclaration() ||
+                 s->isTemplateMixin()) {
             s->toObjFile(0); // TODO: multiobj
         }
         else {