diff options
author | Miguel de Icaza <miguel@gnome.org> | 2006-08-08 02:16:58 +0400 |
---|---|---|
committer | Miguel de Icaza <miguel@gnome.org> | 2006-08-08 02:16:58 +0400 |
commit | dbe5a0257c713fbfdea697244d0df96f9b1d2ed8 (patch) | |
tree | 076f8697e566e577aa0b39677c8e08f5a557352d | |
parent | 59a342dd6c64901f17bcba22f7f3d57ad81341cf (diff) |
Add support for arrays
svn path=/trunk/mono/; revision=63458
-rw-r--r-- | samples/size/sample.cs | 6 | ||||
-rw-r--r-- | samples/size/size.c | 11 |
2 files changed, 16 insertions, 1 deletions
diff --git a/samples/size/sample.cs b/samples/size/sample.cs index 5a874dec852..e5da814435b 100644 --- a/samples/size/sample.cs +++ b/samples/size/sample.cs @@ -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 (); + } } diff --git a/samples/size/size.c b/samples/size/size.c index a3d2253add1..94174ba0a65 100644 --- a/samples/size/size.c +++ b/samples/size/size.c @@ -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: |