[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