Re: GC and multiple inheritance as in C++
"David Jeske" <[email protected]> Fri, 13 Jun 2008 01:40:42 -0000
| Newsgroups | gmane.comp.gnome.mono.garbage-collection |
|---|---|
| Message-ID | <jeske@willow=01kzyO7kFEDjCX2N> |
I think my optimism may have got the better of me. The CLR has a mechanism to handle internal references, but I don't believe this answers your question or solves your issue. The CLI GC handles interior references to objects even in C# for "byref" paramaters, but only for interior references on the stack. Here are some potentially useful references: (see the bottom of this for comments on Rotor) http://blogs.msdn.com/joelpob/archive/2004/02/26/80776.aspx http://ksrenevasan.blogspot.com/2005/08/incomplete-rotor-gc-notes.html Partition I, section 12.4.1.5.2, it talks about byref and lifetimes. Partition II, section 12, it talks about interfaces and mentions MI. ---- However, it occurs to me that in C++ MI you may need interior pointers that are not on the stack. Your concern may be well-founded, as the snippets I can find only talk about Rotor tracing interior references which are on the stack. Perhaps someone with more knowledge can offer a more complete (or accurate) answer. -- Juro Jon wrote: > I don't know much of CLI specification so I may be missing something > trivial. Java GC assumes that all pointers point to some "header" to > identity the memory object. Since Java is single inheritance a pointer > always points to the head of a full object, but for C++ multiple inheritance > it may be pointing to an embedded part and need to be adjusted to find the > full object. Are you saying that the CLI GC or typesystem has some way to do > this adjustment? _______________________________________________ Mono-gc-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-gc-list