[Mono-bugs] [Bug 67039][Nor] Changed - [PATCH] Delegates returned from a PInvoke call are improperly marshalled
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Wed, 29 Sep 2004 01:20:31 -0400 (EDT)
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 grompf@sublimeintervention.com.
http://bugzilla.ximian.com/show_bug.cgi?id=67039
--- shadow/67039 2004-09-29 01:18:10.000000000 -0400
+++ shadow/67039.tmp.454 2004-09-29 01:20:31.000000000 -0400
@@ -48,6 +48,29 @@
------- Additional Comments From grompf@sublimeintervention.com 2004-09-29 01:18 -------
Created an attachment (id=11493)
updated patch
+
+------- Additional Comments From grompf@sublimeintervention.com 2004-09-29 01:20 -------
+Zoltan,
+
+ the 3rd patch doesn't search the finalizer ghash, but implements its own that adds a
+delegate ot the hash as it gets marshalled down, and removes it when the delegate gets
+finalized.
+
+ Additionally it brings the exception for a delegate created in native land into line with
+MS.Net:
+
+Unhandled Exception: System.ArgumentException: Additional information: Function
+pointer was not created by a delegate.
+in (unmanaged) (wrapper managed-to-native) System.Object:
+__icall_wrapper_mono_ftn_to_delegate (intptr,intptr)
+
+ The only place this might not be perfect yet is the handling of the delegates in the hash;
+when marshalling the delegate_trampoline back to a delegate, should we clone the object;
+or keep things how we are by just pointing the MonoObject/MonoDelegate to the same
+object?
+
+-kangaroo
+