Hi,
As simple workaround while we figure out how to fix it add a static method
to you App class with the following:
static void LinqWorkAround () {
System.Linq.OrderedEnumerable<Foo>.CreateOrderedEnumerable<int> (null,
null, false);
}
This should take care of this crash. If you're building your project with
user code linking enabled,
make sure to have this method called during initialization, something like
this:
static bool dummy = false;
static void main () {
if (dummy) LinqWorkAround ();
}
On Wed, Feb 29, 2012 at 2:24 PM, danmiser <[email protected]> wrote:
> I've searched through this group, StackOverflow, and the MT bugzilla list.
> There are a lot of mentions about this, but I'm having a hard time finding
> an authoritative answer. Assume the following code:
>
> var list = new List<Foo>();
> list.Add (new Foo { Id = 3, Name="def"});
> list.Add (new Foo { Id = 2, Name="def"});
> list.Add (new Foo { Id = 1, Name="ggg"});
> var x = from l in list orderby l.Name, l.Id select l;
> foreach (var item in x) { ... do something ... }
>
> public class Foo {
> public int Id { get; set; }
> public string Name { get; set; }
> }
>
> When running on the device, I get the info pasted below.
>
> Notes:
> 1. This only fails on the device
> 2. It doesn't fail if you just have one orderby item
>
> I have a lot of LINQ in my POCO classes, and I wouldn't relish the idea of
> unwinding it all.
>
> What do I need to do to make this work?
>
> Unhandled Exception: System.ExecutionEngineException: Attempting to JIT
> compile method
> 'System.Linq.OrderedEnumerable`1<Foo>:CreateOrderedEnumerable<int>
> (System.Func`2<Foo, int>,System.Collections.Generic.IComparer`1<int>,bool)'
> while running with --aot-only.
>
> at System.Linq.Enumerable.ThenBy[Foo,Int32] (IOrderedEnumerable`1 source,
> System.Func`2 keySelector, IComparer`1 comparer) [0x00007] in
>
> /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System.Linq/Enumerable.cs:2787
> at System.Linq.Enumerable.ThenBy[Foo,Int32] (IOrderedEnumerable`1 source,
> System.Func`2 keySelector) [0x00000] in
>
> /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System.Linq/Enumerable.cs:2779
> at TestLibrary.HelloContext.List () [0x00006] in
> /Users/danmiser/code/MonoTouchRestDemo/TestLibrary/MyClass.cs:18
> at MonoTouchRestDemo.MonoTouchRestDemoViewController.<ViewDidLoad>m__0
> (System.Object sender, System.EventArgs e) [0x00006] in
>
> /Users/danmiser/code/MonoTouchRestDemo/MonoTouchRestDemo/MonoTouchRestDemoViewController.cs:38
> at MonoTouch.UIKit.UIControlEventProxy.Activated () [0x00000] in
> /Developer/MonoTouch/Source/monotouch/src/UIKit/UIControl.cs:30
> at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String
> principalClassName, System.String delegateClassName) [0x00042] in
> /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29
> at MonoTouchRestDemo.Application.Main (System.String[] args) [0x00000] in
> /Users/danmiser/code/MonoTouchRestDemo/MonoTouchRestDemo/Main.cs:16
> [ERROR] FATAL UNHANDLED EXCEPTION: System.ExecutionEngineException:
> Attempting to JIT compile method
>
> 'System.Linq.OrderedEnumerable`1<TestLibrary.HelloClone>:CreateOrderedEnumerable<int>
> (System.Func`2<TestLibrary.HelloClone,
> int>,System.Collections.Generic.IComparer`1<int>,bool)' while running with
> --aot-only.
>
> at System.Linq.Enumerable.ThenBy[Foo,Int32] (IOrderedEnumerable`1 source,
> System.Func`2 keySelector, IComparer`1 comparer) [0x00007] in
>
> /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System.Linq/Enumerable.cs:2787
> at System.Linq.Enumerable.ThenBy[Foo,Int32] (IOrderedEnumerable`1 source,
> System.Func`2 keySelector) [0x00000] in
>
> /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System.Linq/Enumerable.cs:2779
> at TestLibrary.HelloContext.List () [0x00006] in
> /Users/danmiser/code/MonoTouchRestDemo/TestLibrary/MyClass.cs:18
> at MonoTouchRestDemo.MonoTouchRestDemoViewController.<ViewDidLoad>m__0
> (System.Object sender, System.EventArgs e) [0x00006] in
>
> /Users/danmiser/code/MonoTouchRestDemo/MonoTouchRestDemo/MonoTouchRestDemoViewController.cs:38
> at MonoTouch.UIKit.UIControlEventProxy.Activated () [0x00000] in
> /Developer/MonoTouch/Source/monotouch/src/UIKit/UIControl.cs:30
> at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String
> principalClassName, System.String delegateClassName) [0x00042] in
> /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29
> at MonoTouchRestDemo.Application.Main (System.String[] args) [0x00000] in
> /Users/danmiser/code/MonoTouchRestDemo/MonoTouchRestDemo/Main.cs:16
> Terminating runtime due to unhandled exception
> Stacktrace:
>
>
> Native stacktrace:
>
> 0 MonoTouchRestDemo 0x01616970
> mono_handle_native_sigsegv + 280
> 1 MonoTouchRestDemo 0x016396c4
> sigabrt_signal_handler +
> 180
> 2 libsystem_c.dylib 0x331b6539 _sigtramp + 48
> 3 libsystem_c.dylib 0x331abf5b pthread_kill + 54
> 4 libsystem_c.dylib 0x331a4feb abort + 94
> 5 MonoTouchRestDemo 0x016f2774 monoeg_g_logv +
> 152
> 6 MonoTouchRestDemo 0x016f27c0
> monoeg_assertion_message
> + 52
> 7 MonoTouchRestDemo 0x01600348
> mono_thread_abort + 148
> 8 MonoTouchRestDemo 0x0161653c
> mono_handle_exception_internal + 3188
> 9 MonoTouchRestDemo 0x01616740
> mono_handle_exception +
> 24
> 10 MonoTouchRestDemo 0x016382d8
> mono_arm_throw_exception
> + 172
> 11 MonoTouchRestDemo 0x005c361c throw_exception
> + 48
> 12 MonoTouchRestDemo 0x01602910
> mono_jit_compile_method
> + 68
> 13 MonoTouchRestDemo 0x016a9ed8
> mono_compile_method + 56
> 14 MonoTouchRestDemo 0x01619d10
> common_call_trampoline +
> 1364
> 15 MonoTouchRestDemo 0x01617de4
> mono_vcall_trampoline +
> 228
> 16 MonoTouchRestDemo 0x005c3528
> generic_trampoline_vcall
> + 136
> 17 MonoTouchRestDemo 0x003b1c5c
>
> System_Linq_Enumerable_ThenBy_TestLibrary_HelloClone_int_System_Linq_IOrderedEnumerable_1_TestLibrary_HelloClone_System_Func_2_TestLibrary_HelloClone_int
> + 144
> 18 MonoTouchRestDemo 0x003b0ca0
> TestLibrary_HelloContext_List + 512
> 19 MonoTouchRestDemo 0x006a9d34
>
> MonoTouchRestDemo_MonoTouchRestDemoViewController__ViewDidLoadm__0_object_System_EventArgs
> + 300
> 20 MonoTouchRestDemo 0x0000edcc
> MonoTouch_UIKit_UIControlEventProxy_Activated + 68
> 21 MonoTouchRestDemo 0x0057c188
>
> wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr
> + 200
> 22 MonoTouchRestDemo 0x01602fbc
> mono_jit_runtime_invoke
> + 1644
> 23 MonoTouchRestDemo 0x016ab43c
> mono_runtime_invoke +
> 128
> 24 MonoTouchRestDemo 0x01707b54
> monotouch_trampoline +
> 3228
> 25 CoreFoundation 0x34321435 -[NSObject
> performSelector:withObject:withObject:] + 52
> 26 UIKit 0x3778b9eb -[UIApplication
> sendAction:to:from:forEvent:] + 62
> 27 UIKit 0x3778b9a7 -[UIApplication
> sendAction:toTarget:fromSender:forEvent:] + 30
> 28 UIKit 0x3778b985 -[UIControl
> sendAction:to:forEvent:] + 44
> 29 UIKit 0x3778b6f5
> -[UIControl(Internal)
> _sendActionsForEvents:withEvent:] + 492
> 30 UIKit 0x3778c02d -[UIControl
> touchesEnded:withEvent:] + 476
> 31 UIKit 0x3778a50f -[UIWindow
> _sendTouchesForEvent:] + 318
> 32 UIKit 0x37789f01 -[UIWindow
> sendEvent:] +
> 380
> 33 UIKit 0x377704ed -[UIApplication
> sendEvent:] + 356
> 34 UIKit 0x3776fd2d
> _UIApplicationHandleEvent + 5808
> 35 GraphicsServices 0x30ba2df3
> PurpleEventCallback +
> 882
> 36 CoreFoundation 0x3439b553
> __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 38
> 37 CoreFoundation 0x3439b4f5
> __CFRunLoopDoSource1 +
> 140
> 38 CoreFoundation 0x3439a343 __CFRunLoopRun +
> 1370
> 39 CoreFoundation 0x3431d4dd
> CFRunLoopRunSpecific +
> 300
> 40 CoreFoundation 0x3431d3a5
> CFRunLoopRunInMode + 104
> 41 GraphicsServices 0x30ba1fcd GSEventRunModal
> + 156
> 42 UIKit 0x3779e743
> UIApplicationMain + 1090
> 43 MonoTouchRestDemo 0x00026cfc
>
> wrapper_managed_to_native_MonoTouch_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr
> + 240
> 44 MonoTouchRestDemo 0x006a8f20
> MonoTouchRestDemo_Application_Main_string__ + 152
> 45 MonoTouchRestDemo 0x0057c188
>
> wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr
> + 200
> 46 MonoTouchRestDemo 0x01602fbc
> mono_jit_runtime_invoke
> + 1644
> 47 MonoTouchRestDemo 0x016ab43c
> mono_runtime_invoke +
> 128
> 48 MonoTouchRestDemo 0x016af6e8
> mono_runtime_exec_main +
> 436
> 49 MonoTouchRestDemo 0x016b435c
> mono_runtime_run_main +
> 756
> 50 MonoTouchRestDemo 0x01607344 mono_jit_exec +
> 140
> 51 MonoTouchRestDemo 0x015ff550 main + 2168
> 52 MonoTouchRestDemo 0x00002504 start + 52
>
> --
> View this message in context:
> http://monotouch.2284126.n4.nabble.com/LINQ-and-OrderBy-again-tp4432245p4432245.html
> Sent from the MonoTouch mailing list archive at Nabble.com.
> _______________________________________________
> MonoTouch mailing list
> [email protected]
> http://lists.ximian.com/mailman/listinfo/monotouch
>
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch