[Mono-bugs] [Bug 77596][Nor] Changed - get rid of global generics caches in metadata.c

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Fri Jul 20 10:55:39 EDT 2007


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.

http://bugzilla.ximian.com/show_bug.cgi?id=77596

--- shadow/77596	2007-07-20 10:40:30.000000000 -0400
+++ shadow/77596.tmp.3083	2007-07-20 10:55:39.000000000 -0400
@@ -273,6 +273,16 @@
 B.dll: [A]Foo<int>
 C.dll: [A]Foo<int>
 
 and suppose you unload 'B.dll', and unluckily enough, the cache
 contains the type allocated in B's image...
 
+
+------- Additional Comments From joncham at gmail.com  2007-07-20 10:55 -------
+"Also, in your case, the current code ensures that either type is
+removed when either of A or B is unloaded."
+
+Sorry if I'm misunderstanding, but isn't the problem that a
+GenericInst from B references a generic type from C (that gets
+allocated from C's mempool), and C was already unloaded (freeing it's
+mempool)? Thus when B tries to check if the type is in B (and access
+type), it's accessing freed memory?


More information about the mono-bugs mailing list