[Mono-bugs] [Bug 609049] New: Overriden virtual methods not called correctly
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Wed May 26 09:51:47 EDT 2010
http://bugzilla.novell.com/show_bug.cgi?id=609049
http://bugzilla.novell.com/show_bug.cgi?id=609049#c0
Summary: Overriden virtual methods not called correctly
Classification: Mono
Product: Mono: Compilers
Version: SVN
Platform: Other
OS/Version: Other
Status: NEW
Severity: Major
Priority: P5 - None
Component: C#
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: amcgovern at novell.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
Steps to reproduce:
1) Check out and install mono/mcs r157698
2) Check out monodevelop r157939 and compile it against mono r157698
3) Start up monodevelop and exit it, you'll see a null ref exception being
thrown which starts with:
System.NullReferenceException: Object reference not set to an instance of an
object
at MonoDevelop.Ide.Gui.Components.ExtensibleTreeView.Clear () [0x00062] in
/data/Projects/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs:557
This is caused by us calling the wrong method when ClassBrowserPad calls
base.Initialize (container). The class hierarchy is:
ClassBrowserPad : SolutionPad : TreeViewPad : AbstractPadContent
ClassBrowserPad and TreeViewpad override the "Initialize (IPadWindow
container)" method defined on AbstractPadContent. If the IL in ClassBrowserPad
is dissassembled, it has the following call:
L_000c: call instance void
MonoDevelop.Ide.Gui.AbstractPadContent::Initialize(class
MonoDevelop.Ide.Gui.IPadWindow)
As you can see, it directly calls the method in AbstractPadContent as opposed
to calling the one in TreeViewPad. This is the bug. We are choosing the wrong
method to invoke.
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list