On Nov 29, 2009, at 4:40 AM, Tom Lane wrote:

> Alexey Klyukin <al...@commandprompt.com> writes:
> 
>> Isn't it also the case with the existing plperl code ? I've noticed that 
>> free(prodesc) is called when it's no longer used (i.e. in 
>> plperl_compile_callback:1636), but refcount of desc->reference is never 
>> decremented.
> 
> I've been experimenting with this and confirmed that there is a leak;
> not only in the DO patch but in the pre-existing code, if a plperl
> function is redefined repeatedly.
> 
> Is this the correct way to release the SV* reference?
> 
>               if (reference)
>                       SvREFCNT_dec(reference);


Yes. In fact this only decreases the reference count, making the interpreter 
free the memory referred to when it becomes 0, but since prodesc->reference has 
refcount of 1 this would do the right thing.

--
Alexey Klyukin                              http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to