Coverity #1354820, #1354821, #1354822, #1271329, uninitialized variables 60/18160/2
Caio SOUZA [Thu, 12 May 2016 14:41:15 +0000 (11:41 -0300)]
Change-Id: I780eebf5bf5e0bd63039164d81bc19e560daefea

scilab/modules/graphic_objects/includes/Triangulator.hxx
scilab/modules/graphic_objects/src/cpp/Triangulator.cpp

index 269823c..b008f46 100644 (file)
@@ -32,7 +32,7 @@ struct Vector3d
     double y;
     double z;
 
-    Vector3d() { }
+    Vector3d() : x(0.), y(0.), z(0.) { }
     Vector3d(const double _x, const double _y, const double _z) : x(_x), y(_y), z(_z) { }
 };
 
index 0d17f1e..ae43b34 100644 (file)
@@ -54,8 +54,11 @@ void Triangulator::fillPoints(void)
         //q autovector matrix
         //d diagonal matrix
         double m[3][3] = {{0., 0., 0.}, {0., 0., 0.}, {0., 0., 0.}};
-        double q[3][3];
-        double d[3][3];
+        //'q' and 'd' are not needed to be initialized
+        // since they are output paraments, but zero-initialize
+        // to follow coverity
+        double q[3][3] = {{0., 0., 0.}, {0., 0., 0.}, {0., 0., 0.}};
+        double d[3][3] = {{0., 0., 0.}, {0., 0., 0.}, {0., 0., 0.}};
         Vector3d middle(0., 0., 0.);
         Vector3d approxNormal(0., 0., 0.);
 
@@ -127,7 +130,7 @@ void Triangulator::fillPoints(void)
         s = normal.y < 0. ? s : -s;
 
         double rotx[3][3] = {{1., 0., 0.}, {0., c, s}, {0., -s, c}};
-        double composedRot[3][3];
+        double composedRot[3][3] = {{0., 0., 0.}, {0., 0., 0.}, {0., 0., 0.}};
         matrixMatrixMul(rotx, rotz, composedRot);
 
         xmin = ymin = zmin = std::numeric_limits<double>::max();