Hello,

Cppcheck reported this:
[basic/source/comp/dim.cxx:1239]: (error) Dereferencing 'pDef' after it is
deallocated / released
We have this:
   1213         pProc = pOld->GetProcDef();
   1214         if( !pProc )
   1215         {
   1216             // Declared as a variable
   1217             Error( SbERR_BAD_DECLARATION, pDef->GetName() );
   1218             delete pDef;
   1219             pProc = NULL;
   1220             bError_ = true;
   1221         }
   1222         // #100027: Multiple declaration -> Error
   1223         // #112787: Not for setup, REMOVE for 8
   1224         else if( pProc->IsUsedForProcDecl() )
   1225         {
   1226             PropertyMode ePropMode = pDef->getPropertyMode();
   1227             if( ePropMode == PROPERTY_MODE_NONE || ePropMode ==
pProc->getPropertyMode() )
   1228             {
   1229                 Error( SbERR_PROC_DEFINED, pDef->GetName() );
   1230                 delete pDef;
   1231                 pProc = NULL;
   1232                 bError_ = true;
   1233             }
   1234         }
   1235 
   1236         if( !bError_ )
   1237         {
   1238             pDef->Match( pProc );
   1239             pProc = pDef;
   1240         }
See http://opengrok.libreoffice.org/xref/core/basic/source/comp/dim.cxx#1209
So it seems a false positive since when pDef is deleted, bError = true and
we don't enter the if.
But isn't it weird to have each time
delete pDef;
pProc = NULL;

Shouldn't it be one of these :
1)
delete pProc;
pProc = NULL;

2)
delete pDef;
pDef = NULL;

?

Julien



--
View this message in context: 
http://nabble.documentfoundation.org/Cppcheck-Dereferencing-pDef-after-it-is-deallocated-released-basic-module-tp4139045.html
Sent from the Dev mailing list archive at Nabble.com.
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to