<p>On Apr 4, 2011 3:35 AM, &quot;Greg&quot; &lt;<a href="mailto:freediving@gmail.com">freediving@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On Thu, Mar 31, 2011 at 11:30 AM, Olly Betts &lt;<a href="mailto:olly@survex.com">olly@survex.com</a>&gt; wrote:<br>
&gt; &gt; On Wed, Mar 30, 2011 at 01:06:39PM +0200, Gregory wrote:<br>
&gt; &gt;&gt; Generally the bindings work perfectly, except when called from an IIS<br>
&gt; &gt;&gt; application and only when the function being called returns a string<br>
&gt; &gt;&gt; eg. GetTerm() or GetValue(). Which results in the application pool<br>
&gt; &gt;&gt; crashing.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Digging into the errors seems to yield the following &quot;Attempted to<br>
&gt; &gt;&gt; read or write protected memory. This is often an indication that other<br>
&gt; &gt;&gt; memory is corrupt.&quot;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I&#39;ve done a little research on the topic and found the following<br>
&gt; &gt;&gt; <a href="http://stackoverflow.com/questions/370079/pinvoke-for-c-function-that-returns-char">http://stackoverflow.com/questions/370079/pinvoke-for-c-function-that-returns-char</a>.<br>
&gt; &gt;&gt; Which suggests that the pinvoke implementation for string/char<br>
&gt; &gt;&gt; returning functions isn&#39;t implemented in a way that supports CLR calls<br>
&gt; &gt;&gt; (at least not in IIS).<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Is there something I could do to fix that on my end or is it something<br>
&gt; &gt;&gt; that needs to be changed in the bindings.<br>
&gt; &gt;<br>
&gt; &gt; I&#39;m not really an expert, but it sounds to me like it would be hard to<br>
&gt; &gt; work around, and should be fixed in the bindings.<br>
&gt; &gt;<br>
&gt; &gt; If you&#39;re able, the best approach would probably be for you to either<br>
&gt; &gt; modify the generated code for one of these methods so that it works in<br>
&gt; &gt; your environment, or produce a cut-down testcase which fails.  Then we<br>
&gt; &gt; can usefully raise it with the SWIG developers.<br>
&gt; &gt;<br>
&gt; &gt; Cheers,<br>
&gt; &gt;    Olly<br>
&gt; Sorry I&#39;m resurrecting this topic but I&#39;ve been doing some debugging /<br>
&gt; research on the string topic and it seem the problem is caused by a<br>
&gt; change in .NET 4.0 CLR which apparently was fixed in SWIG 2.x see<br>
&gt; <a href="http://sourceforge.net/tracker/?func=detail&amp;aid=2957375&amp;group_id=1645&amp;atid=101645">http://sourceforge.net/tracker/?func=detail&amp;aid=2957375&amp;group_id=1645&amp;atid=101645</a><br>
&gt; for more information.<br>
&gt;<br>
&gt; Are there any plans to migrate Xapian to use the latest version of SWIG?<br>
&gt;<br></p>
<p> Moving to the latest SWIG bindings has been something we&#39;ve discussed a few times recently. I.think its a worthy goal, but it will require a lot of testing. Most of the bindings only have smoketests. I would not be confident making a change like this without a good picture of our binding test coverage. </p>

<p>--Dan</p>