http://bugzilla.novell.com/show_bug.cgi?id=569770

http://bugzilla.novell.com/show_bug.cgi?id=569770#c0


           Summary: Mono.Cairo ImageSurface causes access violations on
                    Windows
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.4.x
          Platform: All
        OS/Version: Windows
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Mono.Cairo
        AssignedTo: [email protected]
        ReportedBy: [email protected]
         QAContact: [email protected]
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
AppleWebKit/532.8 (KHTML, like Gecko) Chrome/4.0.288.1 Safari/532.8

When an ImageSurface using an array to store the image data is created in
Windows,  the GC eventually moves the array, resulting in an access violation.
Same code works fine on Linux.

Reproducible: Always

Steps to Reproduce:
1. Create an image surface with something like:
    imageData = new byte[w* h* 4];
    surface = new ImageSurface( ref imageData, Format.ARGB32, w, h, 4 * w);
2. Perform some rendering operations on a context created like:
    using (Context cr = new Context(surface))
    {
        // do something with cr
    }
Actual Results:  
The rendering will work fine for a couple seconds, but then throw an access
violation on some call to the context.

Expected Results:  
Continued to render without throwing the exception.

This bug can be fixed by pinning the image data with something like:

gch = GCHandle.Alloc(imageData, GCHandleType.Pinned);

before it is sent to the ImageSurface. While this is an okay workaround, it
should be done inside of Mono.Cairo.

-- 
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

Reply via email to