|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: SAX for .NET 1.0 released
Hi,
> > Also, some methods in Expat.cs, like XMLErrorString, are defined to
> > return a 'string' in
> > managed code, but the unmanaged method returns a pointer to static memory. This
> > will cause problems since the runtime will attempt to free the memory
> > returned by the
> > unmanaged function. The solution is to return 'IntPtr' and explicitly
> > marshal the pointer
> > to a string using the functions in the Marshal class.
>
> I thought that is taken care of by default marshalling, where
> a copy is made of the string, so the above should not happen.
> Does Mono not have default marshalling?
>
Hi,
The default marshalling behavior is to free strings returned by the
unmanaged function after they have been converted to a managed string. The
.NET runtime somehow detects that the returned string points to static data and
does not free it, but the mono runtime does. Thats why this works under MS.NET
but not under mono.
Zoltan
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|
|||||||||

Cart








