On 08/04/2014 13:10, Caolán McNamara wrote:
On Sat, 2014-04-05 at 15:51 -0700, julien2412 wrote:
Hello,

Cppcheck reported this
svx/source/unodraw/unomod.cxx
492     multiCondition  style   Expression is always false because 'else if'
condition matches previous condition at line 460.

Remark: It's a new kind of cppcheck detection and there are quite a lot of
false positives (at least for LO) for the moment.

Here's the code:
     460         else if( aTypeName.startsWith( "TableShape" ) )
     461         {
     462             nType = OBJ_OLE2;
     463         }
...
     492         else if( aTypeName.startsWith( "TableShape" ) )
     493         {
     494             nType = OBJ_TABLE;
     495         }

see
http://opengrok.libreoffice.org/xref/core/svx/source/unodraw/unomod.cxx#460

Which one of this block is ok?
I rather think the second one is the correct one, seeing as
svx/source/unodraw/unopage.cxx maps TableShape to OBJ_TABLE as well.

At one point tables in impress/draw were embedded calc spreadsheets, and
now they are "real" SdrObject things to that would also make sense.

On the other hand that will change the current situation and I have no
idea what makes the code enter that method so definitely a make check
case at least :-)
I've just pushed the fix on master. "make check" on top level was ok.
Searching in git history during "make check", I found this commit from 2008:
http://cgit.freedesktop.org/libreoffice/core/commit/?id=5d20a47c3d50d0a88543b2355ec7340fc7455984
which references "OBJ_TABLE"
whereas OBJ_OLE2 was in 2001 (see http://cgit.freedesktop.org/libreoffice/core/commit/?id=e24bc241b69da6789351d9bf82eab5119f09c16c)

I submitted a gerrit review 4.2:
https://gerrit.libreoffice.org/8897

Julien
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to