[Mono-bugs] [Bug 75109][Nor] New - unmanaged delegate problems on
ia32e
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Wed Jun 1 12:37:15 EDT 2005
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 james at ximian.com.
http://bugzilla.ximian.com/show_bug.cgi?id=75109
--- shadow/75109 2005-06-01 12:37:15.000000000 -0400
+++ shadow/75109.tmp.28541 2005-06-01 12:37:15.000000000 -0400
@@ -0,0 +1,52 @@
+Bug#: 75109
+Product: Mono: Runtime
+Version: 1.1
+OS:
+OS Details:
+Status: NEW
+Resolution:
+Severity:
+Priority: Normal
+Component: JIT
+AssignedTo: mono-bugs at ximian.com
+ReportedBy: james at ximian.com
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: unmanaged delegate problems on ia32e
+
+I'm seeing a crash when unamanged code attempts to invoke a managed
+delagate, only on amd64/ia32e boxes (mono 1.1.7.2).
+
+The C api where the delegate is passed is:
+
+int
+rc_world_foreach_package_by_name (RCWorld *world,
+ const char *name,
+ RCChannel *channel,
+ RCPackageFn fn,
+ gpointer user_data)
+
+RCPackageFn is the callback, defined as:
+
+typedef gboolean (*RCPackageFn) (RCPackage *pkg, gpointer data);
+
+RCPackage is just a struct.
+
+The managed wrapper for the above call is defined as:
+
+[DllImport("libredcarpet")]
+static extern int rc_world_foreach_package_by_name(IntPtr raw, string name,
+IntPtr channel, RCSharp.PackageDelegateNative fn, IntPtr user_data);
+
+RCSharp.PackageDelegateNative is defined as:
+
+internal delegate bool PackageDelegateNative(IntPtr pkg, IntPtr data);
+
+At first I thought it was the usual "managed delegate got garbage
+collected" stuff, but the test case holds a ref to the delegate. Also,
+running with MONO_DEBUG=1 did not indicate any delegate GC stuff was happening.
+
+I will attach the test case I'm using, which uses libredcarpet-sharp
+(libredcarpet module in gnome cvs).
More information about the mono-bugs
mailing list