[Libreoffice] question about memory leak detected by cppcheck

Julien Nabet serval2412 at yahoo.fr
Sat Nov 20 08:58:03 PST 2010


Le 20/11/2010 17:18, Caolán McNamara a écrit :
> On Sat, 2010-11-20 at 08:37 +0100, Julien Nabet wrote:
>
>    
>>           SfxAllEnumValue_Impl *pVal = new SfxAllEnumValue_Impl;
>>      
> ...
>    
>>           const SfxAllEnumValue_Impl *pTemp = pVal;
>>      
> ...
>    
>>           pValues->Insert( pTemp, nPos );
>>      
>    
>> And cppcheck says :
>> Checking ./filters/binfilter/bf_svtools/source/items/svt_aeitem.cxx...
>> [./filters/binfilter/bf_svtools/source/items/svt_aeitem.cxx:110]:
>> (error) Memory leak: pVal
>>
>> In my opinion it's a false positive
>>      
> Without looking at the full impl of SfxAllEnumValueArr its hard to tell.
> I would imagine that cppcheck can't tell either :-). So, just for the
> sake of a cppcheck test change
>
> const SfxAllEnumValue_Impl *pTemp = pVal;
> pValues->Insert( pTemp, nPos );
>
> to
>
> pValues->Insert( pVal, nPos );
>
> or
>
> pValues->Insert( (const SfxAllEnumValue_Impl*)pTmp, nPos );
>
> and see if cppcheck still complains, or if the cast has confused it.
>
> C.
>
>
>    
With

pValues->Insert( pVal, nPos );

it works

but with :

pValues->Insert( (const SfxAllEnumValue_Impl*)pTmp, nPos );

it doesn't work.

So must i declare a new bug for cppcheck by describing the current and 
your second proposition that don't work ?

Another question : what is the utility of pTemp ?  it's for having a 
"const" pointer ?

Julien.


More information about the LibreOffice mailing list