[Mono-bugs] [Bug 683924] New: IList<T>.Contains() throws ExecutionEngineException when T is an enumeration

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Mar 30 18:01:57 EDT 2011


https://bugzilla.novell.com/show_bug.cgi?id=683924

https://bugzilla.novell.com/show_bug.cgi?id=683924#c0


           Summary: IList<T>.Contains() throws ExecutionEngineException
                    when T is an enumeration
    Classification: Mono
           Product: MonoTouch
           Version: unspecified
          Platform: iPhone
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: Runtime
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: ml at tomfanning.eu
         QAContact: mono-bugs at lists.ximian.com
          Found By: Third Party Developer/Partner
           Blocker: ---


Description of Problem:

On my iPhone 3GS, when .Contains() is called on an array of enumeration values,
an ExecutionEngineException is thrown.

This does not occur on the simulator.

Steps to reproduce the problem:
1. Paste the following code into a new iPhone project in MonoTouch

private enum MyEnum
{
    One, Two, Three, Four
}

public override bool FinishedLaunching (UIApplication app, NSDictionary
options)
{
    window.MakeKeyAndVisible ();
    var evens = new[]{ MyEnum.One, MyEnum.Three};
    bool b = false;

    try 
    {
        b = evens.Contains(MyEnum.Two);

        using (var alert = new UIAlertView("No problem", 
                                           "Code executed fine", null, "OK",
null))
        {
            alert.Show();
        }
    }
    catch (Exception ex)
    {
        using (var alert = new UIAlertView(string.Format("{0} ({1})",
ex.GetType().Name, b), 
                                           ex.Message, null, "OK", null))    
        {
            alert.Show();
        }
    }

    return true;
}


2. 
Deploy to a device and open the app.

Actual Results:

Unhandled ExecutionEngineException with the following message:

"Attempting to JIT compile method '(wrapper managed-to-managed)
MyApp.MyEnum[]:System.Collections.Generic.ICollection`1.Contains(MyApp.MyEnum)'
while running with --aot-only"


Expected Results:
Contains() to behave as normal

How often does this happen? 
Every time .Contains() is called, but only on a device, never in the simulator.

Additional Information:
iPhone is 3GS running 4.3 (8f190)
MonoDevelop is 2.4.2
MonoTouch is 2.1
OS X is 10.6.7

-- 
Configure bugmail: https://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