Add support for arrays
authorMiguel de Icaza <miguel@gnome.org>
Mon, 7 Aug 2006 22:16:58 +0000 (22:16 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Mon, 7 Aug 2006 22:16:58 +0000 (22:16 -0000)
svn path=/trunk/mono/; revision=63458

samples/size/sample.cs
samples/size/size.c

index 5a874dec8528b5ecbc505f5e576e1800f10bf5e0..e5da814435b2a725c7cda30dd61e445c0e0bb5fd 100644 (file)
@@ -20,4 +20,10 @@ class Demo {
 class DD {
     Demo d = new Demo ();
     object [] o = new object [10];
+    
+    public DD ()
+    {
+           o [0] = new Demo ();
+           o [5] = new Demo ();
+    }
 }
index a3d2253add10c34865844f953a8663b823e4889c..94174ba0a654f4c17098c97958b6f2f14f08a9ff 100644 (file)
@@ -41,7 +41,16 @@ memory_usage (MonoObject *this, GHashTable *visited)
                        break;
 
                case MONO_TYPE_SZARRAY:
-                       printf ("implement me\n");
+                       {
+                               int len, i;
+                               mono_field_get_value (this, field, &value);
+                               len = mono_array_length ((MonoArray *)value);
+                               for (i = 0; i < len; i++){
+                                       MonoObject *item = mono_array_get ((MonoArray *) value, gpointer, i);
+                                       if (item != NULL)
+                                               total += memory_usage (item, visited);
+                               }
+                       }
                        break;
                        
                case MONO_TYPE_I4: