Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=82510 --- shadow/82510 2007-08-21 12:34:56.000000000 -0400 +++ shadow/82510.tmp.2156 2007-08-21 13:32:39.000000000 -0400 @@ -61,6 +61,28 @@ Console.WriteLine ("invoke"); Assembly a = Assembly.LoadFrom ("test.exe"); Type t = a.GetType ("MonoEmbed"); t.GetMethod ("DoException").Invoke (null, null); } <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + +------- Additional Comments From [EMAIL PROTECTED] 2007-08-21 13:32 ------- +In this specific example it would indeed be easier. +Unity is not really that simple unfortunately. + +The main problem is that Unity does some 20.000-100.000 mono_runtime_invoke calls +every second depending on the game. + +If i wanted to do this indirection through managed code i would have to convert all our +code that uses mono_runtime_invoke to call the managed ridrect method. Which then calls +Invoke from managed code as you described. + +In Unity however we do not know the class or the method name at compile time. +I presume there is some way to directly pass the MethodInfo from unmanaged code to the +the method that does the redirect. But of course the MethodInfo would first have to be +allocated. + +Parameters also would have to be boxed, and a MonoArray would have to be allocated +instead of using the usual mono_runtime_invoke parameters. + +It seems that this would make invokation of our methods around twice as slow. So thats +not very good. This is why, i want to switch domains from unmanaged code. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
