<div>Hello all,</div>
<div>&nbsp; I'm working on the Win32 support for the GIMP# project&nbsp;- a framework which allows developers to write GIMP plugins using C#; in particular, I'm taking care of bug-fixing all the issues related to unit tests (run with NUnit).
</div>
<div>I'm facing this exception: </div>
<div>&nbsp;</div>
<div>&quot;<em>System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt</em>&quot;</div>
<div>&nbsp;</div>
<div>The piece of code involved is the &quot;get&quot; block of the following method:</div>
<div>&nbsp;</div>
<div>
<p>&nbsp;&nbsp;&nbsp; public byte[] this[int row, int col]<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br>&nbsp;{<br>&nbsp;&nbsp; int bpp = (int) pr.bpp;<br>&nbsp;&nbsp; IntPtr dest = (IntPtr) ((int) pr.data + (row - Y) * Rowstride + <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (col - X) * bpp);<br>&nbsp;&nbsp; Marshal.Copy(value, 0, dest, 
value.Length);<br>&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br>&nbsp;{<br>&nbsp;&nbsp; int bpp = (int) pr.bpp;<br>&nbsp;&nbsp; IntPtr src = (IntPtr) ((int) pr.data + (row - Y) * Rowstride + <br>&nbsp;&nbsp;&nbsp;&nbsp; (col - X) * bpp);<br>&nbsp;&nbsp; Marshal.Copy(src, _dummy, 0, bpp);</p>
<p>&nbsp;&nbsp; return _dummy;<br>&nbsp;}<br>&nbsp;&nbsp;&nbsp; }</p>
<p>After several investigations,it seems that the problem is related to &quot;src&quot; variable and the &quot;Marshal.Copy&quot; invocation. The attribute &quot;pr.data&quot; has type &quot;IntPtr&quot; but the block of memory&nbsp;referenced by it is allocated directly by GIMP (in an unmanaged way), so I can't use the method 
Marshal.AllocHGlobal .</p>
<p>It works fine with Linux, but under Win32 it raises that exception.</p>
<p>Thanks in advance for your support,</p>
<p>Regards,</p>
<p>&nbsp; Max</p></div>
<div>&nbsp;</div>