[Mono-bugs] [Bug 79000][Nor] Changed - Memleak & Performance issue with deserialization of mulit-dimensional arrays

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Fri Aug 11 09:59:47 EDT 2006

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by joncham at gmail.com.


--- shadow/79000	2006-08-11 09:04:33.000000000 -0400
+++ shadow/79000.tmp.2629	2006-08-11 09:59:47.000000000 -0400
@@ -91,6 +91,20 @@
 Looks like the problem is in the property Type.IsValueType when the
 type is a multi-dimensional array. It is leaking memory and every call
 is slower.
+------- Additional Comments From joncham at gmail.com  2006-08-11 09:59 -------
+I'm not quite sure of the proper fix, but I think I found the problem. 
+It seems to be in mono_bounded_array_class_get. No mattter how many
+times it's called with the same paramters, the cache lookup (line
+3357) never succeeds. 
+Note if (rank > 1) bounded is set to FALSE (line 3345). Then the
+comparison (line 3357) always compares class->byval_arg.type to
+MONO_TYPE_SZARRAY. Later if (rank > 1) we are setting the type of the
+created class to MONO_TYPE_ARRAY (line 3425). Thus, the next time we
+come in, the comparison fails and the class is created again. I'm
+guessing one of the ifs needs changed, but not sure which one.

More information about the mono-bugs mailing list