[fpc-pascal] Re: Passing objects to libraries and back

michael.vancanneyt at wisa.be michael.vancanneyt at wisa.be
Sat Feb 26 11:41:27 CET 2011



On Sat, 26 Feb 2011, Jonas Maebe wrote:

>
> On 26 Feb 2011, at 11:15, Michael Van Canneyt wrote:
>
>> On Fri, 25 Feb 2011, leledumbo wrote:
>>
>>>> can i pass ansistrings ?
>>>
>>> Yes, but only if you know what you're doing. NEVER modify the passed strings
>>> (it would confuse the reference counting). Use const parameter all the time.
>>
>> It will almost certainly lead to memory leaks, because a simple
>> a:=b;
>> inside the library with b passed on from the main program, will lead to problems as soon as the library is unloaded.
>
> It shouldn't matter with cmem/sharemem, because
> a) unloading a library from within one of its own routines is not possible, 
> so there cannot be any local variables in the shared libraries holding a 
> reference at such a point
> b) global variables are finalised when the library is unloaded

This is correct. I didn't know about sharemem, though. 
I should document it :-)

Michael.



More information about the fpc-pascal mailing list