* TypeDef.cs: Add size and packing information
authorJackson Harper <jackson@novell.com>
Sun, 11 May 2003 16:08:10 +0000 (16:08 -0000)
committerJackson Harper <jackson@novell.com>
Sun, 11 May 2003 16:08:10 +0000 (16:08 -0000)
svn path=/trunk/mcs/; revision=14488

mcs/ilasm/codegen/ChangeLog
mcs/ilasm/codegen/TypeDef.cs

index 6f87c8762772c03d1631e005202d08f328db62c0..760d576c2844d1b0bf194f733f92d2b5175c3668 100644 (file)
@@ -1,3 +1,7 @@
+2003-05-11 Jackson Harper <jackson@latitudegeo.com>
+
+       * TypeDef.cs: Add size and packing information
+               
 2003-05-10 Jackson Harper <jackson@latitudegeo.com>
 
        * IFieldRef.cs: New file - interface field references must implement
index f6d18afd480c56d4a1aca0871a1963145a082cb2..534f8e2448bdab9b9657480399c6ddbbdaf61bd4 100644 (file)
@@ -28,6 +28,9 @@ namespace Mono.ILASM {
                 private ArrayList data_list;
                 private TypeDef outer;
 
+                private int size;
+                private int pack;
+
                 public TypeDef (PEAPI.TypeAttr attr, string name_space, string name,
                                 IClassRef parent, ArrayList impl_list, Location location)
                 {
@@ -40,6 +43,9 @@ namespace Mono.ILASM {
                         method_table = new Hashtable ();
                         data_list = new ArrayList ();
 
+                        size = -1;
+                        pack = -1;
+
                         is_defined = false;
                         is_intransit = false;
                 }
@@ -69,6 +75,16 @@ namespace Mono.ILASM {
                         get { return is_defined; }
                 }
 
+                public void SetSize (int size)
+                {
+                        this.size = size;
+                }
+
+                public void SetPack (int pack)
+                {
+                        this.pack = pack;
+                }
+
                 public void AddFieldDef (FieldDef fielddef)
                 {
                         field_table.Add (fielddef.Name, fielddef);
@@ -123,6 +139,9 @@ namespace Mono.ILASM {
                                 }
                         }
 
+                        if (size != -1)
+                                classdef.AddLayoutInfo (pack, size);
+
                         is_intransit = false;
                         is_defined = true;