Coverity #1350354, #1350367, #1350441, #1350442, #1350626 fixed 74/18474/1
Dhruv Khattar [Wed, 17 Aug 2016 10:12:16 +0000 (15:12 +0530)]
Change-Id: I80ae6a2daad8fac248fa062d78099ebf13e14e67

scilab/modules/slint/src/cpp/BracketedExpChecker.cpp
scilab/modules/slint/src/cpp/CommentRatioChecker.cpp
scilab/modules/slint/src/cpp/NaNChecker.cpp
scilab/modules/slint/src/cpp/SciFile.cpp
scilab/modules/slint/src/cpp/SemicolonAtEOLChecker.cpp

index 67bf922..3df5eaf 100644 (file)
@@ -32,7 +32,7 @@ void BracketedExpChecker::preCheckNode(const ast::Exp & e, SLintContext & contex
             {
                 --pos.first;
             }
-            while (pos.first >= 0 && (code[pos.first] == L' ' || code[pos.first] == L'\t'));
+            while (pos.first != -1 && (code[pos.first] == L' ' || code[pos.first] == L'\t'));
             if (pos.first == -1)
             {
                 bracketed = false;
index d146c6c..56efaa6 100644 (file)
@@ -48,7 +48,15 @@ void CommentRatioChecker::preCheckFile(SLintContext & context, SLintResult & res
 void CommentRatioChecker::postCheckFile(SLintContext & context, SLintResult & result)
 {
     const uint64_t lines = context.getSciFile()->countLines();
-    const double ratio = ((double)count) / ((double)lines);
+    double ratio;
+    if (lines)
+    {
+        ratio = ((double)count) / ((double)lines);
+    }
+    else
+    {
+        ratio = 0;
+    }
     if (ratio < ratioMin)
     {
         result.report(context, Location(), *this, _("The minimal ratio between commented lines and total lines is not reached: %d < %d."), ratio, ratioMin);
index 4adfd71..a11e813 100644 (file)
@@ -23,7 +23,7 @@ void NaNChecker::preCheckNode(const ast::Exp & e, SLintContext & context, SLintR
     const ast::OpExp & oe = static_cast<const ast::OpExp &>(e);
     const ast::OpExp::Oper oper = oe.getOper();
 
-    if (oper == ast::OpExp::lt || ast::OpExp::le || ast::OpExp::gt || ast::OpExp::ge || ast::OpExp::ne || ast::OpExp::eq)
+    if (oper == ast::OpExp::lt || oper == ast::OpExp::le || oper == ast::OpExp::gt || oper == ast::OpExp::ge || oper == ast::OpExp::ne || oper == ast::OpExp::eq)
     {
         bool hasNaN = false;
 
index fd6f691..8168892 100644 (file)
@@ -23,7 +23,7 @@ extern "C"
 namespace slint
 {
 
-SciFile::SciFile() : code(nullptr), tree(nullptr), main(nullptr) { }
+SciFile::SciFile() : code(nullptr), tree(nullptr), main(nullptr), codeLength(0) { }
 
 SciFile::SciFile(const std::wstring & _filename, const wchar_t * _code, const ast::Exp * _tree) : filename(_filename), code(_code), tree(_tree), main(nullptr)
 {
index 3962610..aec981d 100644 (file)
@@ -90,7 +90,7 @@ void SemicolonAtEOLChecker::check(const ast::Exp * e, SLintContext & context, SL
         {
             const wchar_t * line = context.getCode() + out.first;
             const unsigned len = out.second - out.first;
-            for (unsigned i = len - 1; i >= 0; --i)
+            for (unsigned i = len - 1; i != -1; --i)
             {
                 const wchar_t c = line[i];
                 if (c == L' ' || c == L'\t')