Fix some Coverity issues after 33b80b 50fe1d 5f73e9 and c473f9 31/20631/1
Clément DAVID [Wed, 21 Nov 2018 14:39:52 +0000 (15:39 +0100)]
Change-Id: I8b5702a4f32117eaf0e5a54b10bf80c981f37148

scilab/modules/ast/src/cpp/ast/runvisitor.cpp
scilab/modules/ast/src/cpp/operations/types_ldivide.cpp
scilab/modules/ast/src/cpp/types/sparse.cpp
scilab/modules/gui/src/java/org/scilab/modules/gui/editor/Editor.java
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/interaction/DragZoomRotateInteraction.java
scilab/modules/renderer/src/java/org/scilab/modules/renderer/utils/PolylineHandler.java

index 78ec8fc..2641228 100644 (file)
@@ -522,9 +522,8 @@ void RunVisitorT<T>::visitprivate(const IfExp  &e)
         throw;
     }
 
-    if (e.isBreakable()
-        && ((e.hasElse() && (&e.getElse())->isContinue())
-        || (&e.getThen())->isBreak()))
+    bool elseIsContinue = e.hasElse() && (&e.getElse())->isContinue();
+    if (e.isBreakable() && (elseIsContinue || (&e.getThen())->isBreak()))
     {
         const_cast<IfExp*>(&e)->setBreak();
         const_cast<Exp*>(&e.getThen())->resetBreak();
@@ -534,9 +533,7 @@ void RunVisitorT<T>::visitprivate(const IfExp  &e)
         }
     }
 
-    if (e.isContinuable()
-        && ((e.hasElse() && (&e.getElse())->isContinue())
-        || (&e.getThen())->isContinue()))
+    if (e.isContinuable() && (elseIsContinue || (&e.getThen())->isContinue()))
     {
         const_cast<IfExp*>(&e)->setContinue();
         const_cast<Exp*>(&e.getThen())->resetContinue();
@@ -546,9 +543,9 @@ void RunVisitorT<T>::visitprivate(const IfExp  &e)
         }
     }
 
+    bool elseIsReturn = e.hasElse() && (&e.getElse())->isReturn();
     if (e.isReturnable()
-        && ((e.hasElse() && (&e.getElse())->isReturn())
-        || (&e.getThen())->isReturn()))
+            && (elseIsReturn || (&e.getThen())->isReturn()))
     {
         const_cast<IfExp*>(&e)->setReturn();
         const_cast<Exp*>(&e.getThen())->resetReturn();
@@ -1470,12 +1467,13 @@ void RunVisitorT<T>::visitprivate(const ListExp &e)
     types::InternalType* pITStart = getResult();
     types::GenericType* pStart = static_cast<types::GenericType*>(pITStart);
     if (pITStart == NULL ||
-        ((pITStart->isGenericType() == false || pStart->getSize() != 1 || (pStart->isDouble() && pStart->getAs<types::Double>()->isComplex())) &&
-        pStart->isList() == false)) // list case => call overload
+            ((pITStart->isGenericType() == false || pStart->getSize() != 1 || (pStart->isDouble() && pStart->getAs<types::Double>()->isComplex())) &&
+             pStart->isList() == false)) // list case => call overload
     {
         setResult(NULL);
         wchar_t szError[bsiz];
-        if (pITStart && pITStart->isImplicitList()) {
+        if (pITStart && pITStart->isImplicitList())
+        {
             os_swprintf(szError, bsiz, _W("%ls: Too many %ls or wrong type for argument %d: Real scalar expected.\n").c_str(), L"':'", L"':'", 1);
         }
         else
@@ -1506,8 +1504,8 @@ void RunVisitorT<T>::visitprivate(const ListExp &e)
     types::GenericType* pStep = static_cast<types::GenericType*>(pITStep);
     setResult(NULL);
     if (pITStep == NULL ||
-        ((pITStep->isGenericType() == false || pStep->getSize() != 1 || (pStep->isDouble() && pStep->getAs<types::Double>()->isComplex())) &&
-        pStep->isList() == false)) // list case => call overload
+            ((pITStep->isGenericType() == false || pStep->getSize() != 1 || (pStep->isDouble() && pStep->getAs<types::Double>()->isComplex())) &&
+             pStep->isList() == false)) // list case => call overload
     {
         pITStart->killMe();
         if (pITStep)
@@ -1536,8 +1534,8 @@ void RunVisitorT<T>::visitprivate(const ListExp &e)
     types::GenericType* pEnd = static_cast<types::GenericType*>(pITEnd);
     setResult(NULL);
     if (pITEnd == NULL ||
-        ((pITEnd->isGenericType() == false || pEnd->getSize() != 1 || (pEnd->isDouble() && pEnd->getAs<types::Double>()->isComplex())) &&
-        pEnd->isList() == false)) // list case => call overload
+            ((pITEnd->isGenericType() == false || pEnd->getSize() != 1 || (pEnd->isDouble() && pEnd->getAs<types::Double>()->isComplex())) &&
+             pEnd->isList() == false)) // list case => call overload
     {
         pITStart->killMe();
         pITStep->killMe();
index 6e69018..673fbad 100644 (file)
@@ -94,7 +94,6 @@ InternalType *GenericLDivide(InternalType *_pLeftOperand, InternalType *_pRightO
 
 int LDivideDoubleByDouble(Double *_pDouble1, Double *_pDouble2, Double **_pDoubleOut)
 {
-    types::Double* pDblTmp = NULL;
     int iErr = 0;
 
     //check finite values of _pDouble1 and _pDouble2
@@ -112,38 +111,6 @@ int LDivideDoubleByDouble(Double *_pDouble1, Double *_pDouble2, Double **_pDoubl
         return RDivideDoubleByDouble(_pDouble2, _pDouble1, _pDoubleOut);
     }
 
-    /* if (_pDouble2->isScalar())
-    {
-        //X \ y => X \ (eye() * y)
-        pDblTmp = new types::Double(_pDouble1->getRows(), _pDouble1->getRows(), _pDouble2->isComplex());
-        double dblScalarReal = _pDouble2->get(0);
-        double* pdblReal = pDblTmp->get();
-        int iSize = pDblTmp->getSize();
-        int iRowsP1 = pDblTmp->getRows() + 1;
-
-        memset(pdblReal, 0x00, iSize * sizeof(double));
-        if (_pDouble2->isComplex())
-        {
-            double dblScalarImag = _pDouble2->getImg(0);
-            double* pdblImag = pDblTmp->getImg();
-            memset(pdblImag, 0x00, iSize * sizeof(double));
-            for (int i = 0; i < iSize; i += iRowsP1)
-            {
-                pdblReal[i] = dblScalarReal;
-                pdblImag[i] = dblScalarImag;
-            }
-        }
-        else
-        {
-            for (int i = 0; i < iSize; i += iRowsP1)
-            {
-                pdblReal[i] = dblScalarReal;
-            }
-        }
-
-        _pDouble2 = pDblTmp;
-    }*/
-
     if (_pDouble1->getDims() > 2 || _pDouble2->getDims() > 2)
     {
         //not managed
@@ -174,11 +141,6 @@ int LDivideDoubleByDouble(Double *_pDouble1, Double *_pDouble2, Double **_pDoubl
                    (*_pDoubleOut)->getReal(), (*_pDoubleOut)->getRows(), (*_pDoubleOut)->getCols(), &dblRcond);
     }
 
-    if (pDblTmp)
-    {
-        delete pDblTmp;
-    }
-
     return iErr;
 }
 
index 00d8686..321ae82 100644 (file)
@@ -522,7 +522,7 @@ Sparse::Sparse(int rows, int cols, int nonzeros, int* inner, int* outer, double*
 
 bool Sparse::getMemory(int *_piSize, int* _piSizePlusType)
 {
-    *_piSize = nonZeros()*sizeof(double)*(isComplex() ? 2 : 1);
+    *_piSize = nonZeros() * sizeof(double) * (isComplex() ? 2 : 1);
     *_piSizePlusType = *_piSize + sizeof(*this);
     return true;
 }
@@ -613,12 +613,12 @@ void Sparse::fill(Double& dest, int r, int c) SPARSE_CONST
     if (isComplex())
     {
         mycopy_n(makeMatrixIterator<std::complex<double> >(*matrixCplx, RowWiseFullIterator(cthis.getRows(), cthis.getCols())), cthis.getSize()
-        , makeMatrixIterator<std::complex<double> >(dest, RowWiseFullIterator(dest.getRows(), dest.getCols(), r, c)));
+                 , makeMatrixIterator<std::complex<double> >(dest, RowWiseFullIterator(dest.getRows(), dest.getCols(), r, c)));
     }
     else
     {
         mycopy_n(makeMatrixIterator<double>(*matrixReal, RowWiseFullIterator(cthis.getRows(), cthis.getCols())), cthis.getSize()
-        , makeMatrixIterator<double >(dest, RowWiseFullIterator(dest.getRows(), dest.getCols(), r, c)));
+                 , makeMatrixIterator<double >(dest, RowWiseFullIterator(dest.getRows(), dest.getCols(), r, c)));
     }
 }
 
@@ -2162,8 +2162,8 @@ GenericType* Sparse::extract(typed_list* _pArgs)
 Sparse* Sparse::extract(int nbCoords, int SPARSE_CONST* coords, int SPARSE_CONST* maxCoords, int SPARSE_CONST* resSize, bool asVector) SPARSE_CONST
 {
     if ((asVector && maxCoords[0] > getSize()) ||
-    (asVector == false && maxCoords[0] > getRows()) ||
-    (asVector == false && maxCoords[1] > getCols()))
+            (asVector == false && maxCoords[0] > getRows()) ||
+            (asVector == false && maxCoords[1] > getCols()))
     {
         return 0;
     }
@@ -2180,10 +2180,10 @@ Sparse* Sparse::extract(int nbCoords, int SPARSE_CONST* coords, int SPARSE_CONST
     }
     //        std::cerr<<"extracted sparse:"<<pSp->getRows()<<", "<<pSp->getCols()<<"seqCount="<<nbCoords<<"maxDim="<<maxCoords[0] <<","<< maxCoords[1]<<std::endl;
     if (!(asVector
-    ? copyToSparse(*this, Coords<true>(coords, getRows()), nbCoords
-    , *pSp, RowWiseFullIterator(pSp->getRows(), pSp->getCols()))
-    : copyToSparse(*this, Coords<false>(coords), nbCoords
-    , *pSp, RowWiseFullIterator(pSp->getRows(), pSp->getCols()))))
+            ? copyToSparse(*this, Coords<true>(coords, getRows()), nbCoords
+                           , *pSp, RowWiseFullIterator(pSp->getRows(), pSp->getCols()))
+            : copyToSparse(*this, Coords<false>(coords), nbCoords
+                           , *pSp, RowWiseFullIterator(pSp->getRows(), pSp->getCols()))))
     {
         delete pSp;
         pSp = NULL;
@@ -2594,7 +2594,7 @@ template<typename S> struct GetReal : std::unary_function<typename S::InnerItera
     }
 };
 template<> struct GetReal< Eigen::SparseMatrix<std::complex<double >, Eigen::RowMajor > >
-        : std::unary_function<Sparse::CplxSparse_t::InnerIterator, double>
+    : std::unary_function<Sparse::CplxSparse_t::InnerIterator, double>
 {
     double operator()(Sparse::CplxSparse_t::InnerIterator it) const
     {
@@ -3231,7 +3231,7 @@ SparseBool::SparseBool(int rows, int cols, int trues, int* inner, int* outer)
 
 bool SparseBool::getMemory(int *_piSize, int* _piSizePlusType)
 {
-    *_piSize = nbTrue()*sizeof(bool);
+    *_piSize = nbTrue() * sizeof(bool);
     *_piSizePlusType = *_piSize + sizeof(*this);
     return true;
 }
@@ -3974,8 +3974,8 @@ GenericType* SparseBool::insertNew(typed_list* _pArgs)
 SparseBool* SparseBool::extract(int nbCoords, int SPARSE_CONST* coords, int SPARSE_CONST* maxCoords, int SPARSE_CONST* resSize, bool asVector) SPARSE_CONST
 {
     if ((asVector && maxCoords[0] > getSize()) ||
-    (asVector == false && maxCoords[0] > getRows()) ||
-    (asVector == false && maxCoords[1] > getCols()))
+            (asVector == false && maxCoords[0] > getRows()) ||
+            (asVector == false && maxCoords[1] > getCols()))
     {
         return 0;
     }
@@ -3985,13 +3985,13 @@ SparseBool* SparseBool::extract(int nbCoords, int SPARSE_CONST* coords, int SPAR
     {
         pSp = (getRows() == 1) ? new SparseBool(1, resSize[0]) : new SparseBool(resSize[0], 1);
         mycopy_n(makeMatrixIterator<bool>(*this, Coords<true>(coords, getRows())), nbCoords
-        , makeMatrixIterator<bool>(*(pSp->matrixBool), RowWiseFullIterator(pSp->getRows(), pSp->getCols())));
+                 , makeMatrixIterator<bool>(*(pSp->matrixBool), RowWiseFullIterator(pSp->getRows(), pSp->getCols())));
     }
     else
     {
         pSp = new SparseBool(resSize[0], resSize[1]);
         mycopy_n(makeMatrixIterator<bool>(*this, Coords<false>(coords, getRows())), nbCoords
-        , makeMatrixIterator<bool>(*(pSp->matrixBool), RowWiseFullIterator(pSp->getRows(), pSp->getCols())));
+                 , makeMatrixIterator<bool>(*(pSp->matrixBool), RowWiseFullIterator(pSp->getRows(), pSp->getCols())));
 
     }
     return pSp;
@@ -4134,7 +4134,10 @@ GenericType* SparseBool::extract(typed_list* _pArgs)
         }
     }
 
-    pOut->finalize();
+    if (pOut)
+    {
+        pOut->finalize();
+    }
 
     delete[] piMaxDim;
     delete[] piCountDim;
@@ -4289,9 +4292,9 @@ bool SparseBool::operator==(const InternalType& it) SPARSE_CONST
 {
     SparseBool* otherSparse = const_cast<SparseBool*>(dynamic_cast<SparseBool const*>(&it));/* types::GenericType is not const-correct :( */
     return (otherSparse
-    && (otherSparse->getRows() == getRows())
-    && (otherSparse->getCols() == getCols())
-    && equal(*matrixBool, *otherSparse->matrixBool));
+            && (otherSparse->getRows() == getRows())
+            && (otherSparse->getCols() == getCols())
+            && equal(*matrixBool, *otherSparse->matrixBool));
 }
 
 bool SparseBool::operator!=(const InternalType& it) SPARSE_CONST
@@ -4337,7 +4340,7 @@ SparseBool* SparseBool::set(int _iRows, int _iCols, bool _bVal, bool _bFinalize)
 void SparseBool::fill(Bool& dest, int r, int c) SPARSE_CONST
 {
     mycopy_n(makeMatrixIterator<bool >(*matrixBool, RowWiseFullIterator(getRows(), getCols())), getSize()
-    , makeMatrixIterator<bool >(dest, RowWiseFullIterator(dest.getRows(), dest.getCols(), r, c)));
+             , makeMatrixIterator<bool >(dest, RowWiseFullIterator(dest.getRows(), dest.getCols(), r, c)));
 }
 
 Sparse* SparseBool::newOnes() const
index 24b5c06..9eebd30 100644 (file)
@@ -820,19 +820,19 @@ public class Editor {
         if (selectedLegend != null) {
             selectedType = SelectionType.LEGEND;
             return selectedLegend.legend;
-        } else {
-            /*try pick a polyline*/
-            Integer picked = entityPicker.pick(figureUid, pos[0], pos[1]);
-            if (picked != null) {
-                selectedType = SelectionType.POLYLINE;
-                return picked;
-            } else {
-                selectedSurface = entityPicker.pickSurface(figureUid, pos);
-                if (selectedSurface.surface != null) {
-                    selectedType = SelectionType.SURFACE;
-                }
-                return selectedSurface.surface;
-            }
         }
+        /*try pick a polyline*/
+        Integer picked = entityPicker.pick(figureUid, pos[0], pos[1]);
+        if (picked != null) {
+            selectedType = SelectionType.POLYLINE;
+            return picked;
+        }
+        /* try pick a surface */
+        selectedSurface = entityPicker.pickSurface(figureUid, pos);
+        if (selectedSurface != null && selectedSurface.surface != null) {
+            selectedType = SelectionType.SURFACE;
+            return selectedSurface.surface;
+        }
+        return null;
     }
 }
index 04f0916..0a68152 100644 (file)
@@ -220,7 +220,7 @@ public class DragZoomRotateInteraction extends FigureInteraction {
                             dataz[picked.point] > realBounds[4] && dataz[picked.point] < realBounds[5]) {
                         position = new double[] {datax[picked.point], datay[picked.point], dataz[picked.point]};
                     }
-                } else if (surfInfo.surface != null) {
+                } else if (surfInfo != null && surfInfo.point != null) {
                     position = new double[] {surfInfo.point.getX(), surfInfo.point.getY(), surfInfo.point.getZ()};
                 }
                 if (position == null) {
index b8a56c0..f52e24e 100644 (file)
@@ -123,7 +123,6 @@ public class PolylineHandler {
             Vector3d vdir = v1.minus(v0);
             //3d old click point and dir
             Vector3d w0 = new Vector3d(c3d3);
-            Vector3d w1 = new Vector3d(c3d4);
             Vector3d wdir = v1.minus(v0);
 
             //if the dir is parallel to the plane there isn't intersection