http://bugzilla.novell.com/show_bug.cgi?id=590015
http://bugzilla.novell.com/show_bug.cgi?id=590015#c0 Summary: Class inherited from SafeHandle is not marshaled properly Classification: Mono Product: Mono: Runtime Version: 2.6.x Platform: x86 OS/Version: openSUSE 11.3 Status: NEW Severity: Normal Priority: P5 - None Component: interop AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- Created an attachment (id=349656) --> (http://bugzilla.novell.com/attachment.cgi?id=349656) Contains code and test to reproduce the problem User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 Full source for the test attached. public class IntPtrSafe : SafeHandle { ... } [DllImport("dummy.so")] static extern IntPtrSafe jni4net_dummy(IntPtrSafe ptrSafe); // this throws System.ObjectDisposedException // but it should return Zero handle as it does on MS.NET IntPtrSafe test1 = jni4net_dummy(new IntPtrSafe()); C/C++ void* jni4net_dummy(void* ptr) { return ptr; } Reproducible: Always Steps to Reproduce: 1. unzip attachment 2. call comp script to compile 3. call test script to execute Actual Results: ------------------------ SafeHandle ---------------------------- safehandle 1 System.ObjectDisposedException: The object was used after being disposed. at System.Runtime.InteropServices.SafeHandle.DangerousAddRef (System.Boolean& success) [0x00000] in <filename unknown>:0 at (wrapper managed-to-native) ReturnIntPtrStruct.BrokenSafeHandle:jni4net_dummy (ReturnIntPtrStruct.BrokenSafeHandle/IntPtrSafe) at ReturnIntPtrStruct.BrokenSafeHandle.test () [0x00000] in <filename unknown>:0 1 349888 349864 ++++++++++++++++++++++++ SafeHandle ++++++++++++++++++++++++++++ Expected Results: ------------------------ SafeHandle ---------------------------- 0 1 0 1 ++++++++++++++++++++++++ SafeHandle ++++++++++++++++++++++++++++ -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
