[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 10:50:45 -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 09:13:31.000000000 -0400
+++ shadow/67039.tmp.9298	2004-09-29 10:50:45.000000000 -0400
@@ -80,6 +80,26 @@
 - the functionality required is already implemented in 
   mono_ftnptr_to_delegate, so there is no need to add new functions/
 fields to Delegate. Instead, mono_ftnptr_to_delegate should be modified
 to include the code which is currently in mono_ftn_to_delegate.
 - hash table access needs to be synchronized using marshal_mutex.
 
+
+------- Additional Comments From grompf@sublimeintervention.com  2004-09-29 10:50 -------
+Zoltan,
+
+  mono_ftnptr_to_delegate actually does something different, it takes the addr of the 
+MonoObject and marshals back to a delegate. This is currently being called on line 2687 
+of marshal.c.  mono_ftn_to_delegate is what I added to deal with mapping a 
+delegate_trampoline (what gets marshalled when a delegate is pinvoked) back to a 
+MonoDelegate  Its a difference of method_addr vs delegate_trampoline.  The reason for 
+the field added to Delegate was to ensure that anything added to the hashtable was 
+removed when the gc was fired on an object, I dont see how anything in 
+mono_ftnptr_to_delegate does things differently.
+
+  Is line 2687 a mistaken entry and is what you're saying that mono_ftnptr_to_delegate is 
+actually supposed to be doing what I have mono_ftn_to_delegate doing?
+
+  I'll sync the ht to the mutex in the mean time;
+
+-kangaroo
+