[Mono-bugs] [Bug 569770] New: Mono.Cairo ImageSurface causes access violations on Windows
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Mon Jan 11 15:50:31 EST 2010
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: mono-bugs at lists.ximian.com
ReportedBy: ajselvig at gmail.com
QAContact: mono-bugs at lists.ximian.com
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.
More information about the mono-bugs
mailing list