* Memory invalid accesses have been greatly reduced thanks to : 08/19308/2
Clément DAVID [Mon, 26 Jun 2017 19:18:13 +0000 (21:18 +0200)]
  - PVS-Studio inspections blog report
  - Coverity scan weekly source analysis

Change-Id: I240da0952448c0083224d08b2ae681f1d96cf83a

33 files changed:
scilab/CHANGES.md
scilab/modules/ast/src/cpp/ast/visitor_common.cpp
scilab/modules/ast/src/cpp/types/overload.cpp
scilab/modules/cacsd/sci_gateway/c/sci_sorder.c
scilab/modules/fileio/sci_gateway/cpp/sci_mscanf.cpp
scilab/modules/graphic_objects/src/cpp/Data3D.cpp
scilab/modules/graphic_objects/src/cpp/ScilabView.cpp
scilab/modules/graphic_objects/src/jni/PolylineData.i
scilab/modules/graphic_objects/src/jni/PolylineData_wrap.c
scilab/modules/graphics/sci_gateway/c/sci_unglue.c
scilab/modules/helptools/sci_gateway/cpp/sci_buildDoc.cpp
scilab/modules/output_stream/src/cpp/diary_manager.cpp
scilab/modules/randlib/sci_gateway/cpp/sci_grand.cpp
scilab/modules/scicos/sci_gateway/cpp/sci_model2blk.cpp
scilab/modules/scinotes/sci_gateway/cpp/sci_closeSciNotesFromScilab.cpp
scilab/modules/scinotes/sci_gateway/cpp/sci_scinotes.cpp
scilab/modules/sparse/sci_gateway/cpp/sci_sparse.cpp
scilab/modules/statistics/src/c/CdfBase.c
scilab/modules/string/src/c/stringToComplex.c
scilab/modules/windows_tools/sci_gateway/cpp/sci_winqueryreg.cpp
scilab/modules/windows_tools/src/c/scilab_windows/spawncommand.c
scilab/modules/xcos/sci_gateway/cpp/sci_Xcos.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosAddToolsMenu.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosConfigureXmlFile.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosDiagramToScilab.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosPalCategoryAdd.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosPalDelete.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosPalDisable.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosPalEnable.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosPalGenerateIcon.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosPalGet.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosPalLoad.cpp
scilab/modules/xcos/sci_gateway/cpp/sci_xcosPalMove.cpp

index 651c747..b561581 100644 (file)
@@ -69,6 +69,9 @@ Feature changes and additions
 -----------------------------
  
 * Empty strings are used as the default values on String allocation
+* Memory invalid accesses have been greatly reduced thanks to :
+  - PVS-Studio inspections blog report
+  - Coverity scan weekly source analysis
 
 Help pages:
 -----------
index de9e957..97c4db0 100644 (file)
@@ -1740,7 +1740,7 @@ types::InternalType* evaluateFields(const ast::Exp* _pExp, std::list<ExpHistory*
 
         return pITMain;
     }
-    catch (const ast::InternalError error)
+    catch (const ast::InternalError& error)
     {
         if (bPutInCtx)
         {
index 959353a..b8abdd0 100644 (file)
@@ -132,7 +132,7 @@ types::Function::ReturnValue Overload::call(const std::wstring& _stOverloadingFu
             throw ast::RecursionException();
         }
     }
-    catch (ast::InternalError ie)
+    catch (const ast::InternalError& ie)
     {
         ConfigVariable::fillWhereError(ie.GetErrorLocation().first_line);
         if (pCall)
index 0acd235..5f19a8a 100644 (file)
@@ -439,7 +439,7 @@ int sci_sorder(char *fname, void* pvApiCtx)
         {
             dblTol1 = pdblTol[0];
         }
-        else if (iRows * iCols > 1)
+        if (iRows * iCols > 1)
         {
             dblTol2 = pdblTol[1];
         }
index 213afcb..6e8efd4 100644 (file)
@@ -271,7 +271,7 @@ types::Function::ReturnValue sci_mscanf(types::typed_list &in, int _iRetCount, t
                                 {
                                     pType->set(iRows * iCols + k, pIT[i]->getAs<types::Double>()->get(k));
                                 }
-                                pITTemp.back();
+                                pITTemp.pop_back();
                                 pITTemp.push_back(pType);
                             }
                             break;
index 224c4e4..204a4fe 100644 (file)
@@ -43,13 +43,6 @@ int Data3D::setDataProperty(int property, void const* value, int numElements)
 
 void Data3D::getDataProperty(int property, void **_pvData)
 {
-    if (property == UNKNOWN_DATA_PROPERTY)
-    {
-        *_pvData = NULL;
-    }
-    else
-    {
-        *_pvData = NULL;
-    }
+    *_pvData = NULL;
 }
 
index 578ea5f..ee42d5b 100644 (file)
@@ -172,7 +172,7 @@ void ScilabView::createObject(int iUID)
     int *piType = &iType;
 
     getGraphicObjectProperty(iUID, __GO_TYPE__, jni_int, (void **)&piType);
-    if (iType != -1 && iType == __GO_FIGURE__)
+    if (iType == __GO_FIGURE__)
     {
         m_figureList[iUID] = -1;
         setCurrentFigure(iUID);
index 674ee57..23a64a6 100644 (file)
@@ -222,8 +222,10 @@ BOOL translatePolyline(int uid, double x, double y, double z, int flagX, int fla
             }
         }
     }
-       if (z != 0 && isZCoordSet(uid))
-       {
+    if (z != 0.0 && isZCoordSet(uid))
+    {
+        dataz = getDataZ(uid);
+        if (dataz == NULL) return FALSE;
         if (flagZ) {
             for (i = 0; i < getDataSize_(uid); ++i)
             {
@@ -235,9 +237,9 @@ BOOL translatePolyline(int uid, double x, double y, double z, int flagX, int fla
                 dataz[i] += z;
             }
         }
-       }
+    }
 
-       return TRUE;
+    return TRUE;
 }
 
 BOOL translatePoint(int uid, int index, double x, double y, double z, int flagX, int flagY, int flagZ)
index 0f33bc0..75d7170 100644 (file)
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 3.0.7
+ * Version 3.0.11
  *
  * This file is not intended to be easily readable and contains a number of
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -8,7 +8,11 @@
  * interface file instead.
  * ----------------------------------------------------------------------------- */
 
+
+#ifndef SWIGJAVA
 #define SWIGJAVA
+#endif
+
 
 /* -----------------------------------------------------------------------------
  *  This section contains generic SWIG labels for method/variable
 #endif
 
 /* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
+#if defined(__GNUC__)
+#  if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#    ifndef GCC_HASCLASSVISIBILITY
+#      define GCC_HASCLASSVISIBILITY
+#    endif
 #  endif
 #endif
 
@@ -365,8 +371,10 @@ BOOL translatePolyline(int uid, double x, double y, double z, int flagX, int fla
             }
         }
     }
-       if (z != 0 && isZCoordSet(uid))
-       {
+    if (z != 0.0 && isZCoordSet(uid))
+    {
+        dataz = getDataZ(uid);
+        if (dataz == NULL) return FALSE;
         if (flagZ) {
             for (i = 0; i < getDataSize_(uid); ++i)
             {
@@ -378,9 +386,9 @@ BOOL translatePolyline(int uid, double x, double y, double z, int flagX, int fla
                 dataz[i] += z;
             }
         }
-       }
+    }
 
-       return TRUE;
+    return TRUE;
 }
 
 BOOL translatePoint(int uid, int index, double x, double y, double z, int flagX, int flagY, int flagZ)
index baaf153..81bdb90 100644 (file)
@@ -87,7 +87,7 @@ int sci_unglue(char *fname, void *pvApiCtx)
 
     getGraphicObjectProperty(iObjUID, __GO_TYPE__, jni_int, (void **)&piObjectType);
 
-    if (iObjectType != -1 && iObjectType == __GO_COMPOUND__)
+    if (iObjectType == __GO_COMPOUND__)
     {
         // Retrieve number of children.
         getGraphicObjectProperty(iObjUID, __GO_CHILDREN_COUNT__, jni_int, (void **) &piChildrenCount);
index fcecdb4..943ffb4 100644 (file)
@@ -246,10 +246,10 @@ extern "C"
         __slashToAntislash(&masterXML);
 #endif
 
+        org_scilab_modules_helptools::SciDocMain * doc = NULL;
         try
         {
-            org_scilab_modules_helptools::SciDocMain * doc = new org_scilab_modules_helptools::SciDocMain(getScilabJavaVM());
-
+            doc = new org_scilab_modules_helptools::SciDocMain(getScilabJavaVM());
             if (doc->setOutputDirectory((char *)outputDirectory.c_str()))
             {
                 doc->setWorkingLanguage((char *)language.c_str());
@@ -260,6 +260,7 @@ extern "C"
             else
             {
                 Scierror(999, _("%s: Could find or create the working directory %s.\n"), fname, outputDirectory.c_str());
+                delete doc;
                 return FALSE;
             }
             if (doc != NULL)
@@ -267,8 +268,12 @@ extern "C"
                 delete doc;
             }
         }
-        catch (GiwsException::JniException ex)
+        catch (const GiwsException::JniException& ex)
         {
+            if (doc != NULL)
+            {
+                delete doc;
+            }
             Scierror(999, _("%s: Error while building documentation: %s.\n"), fname, ex.getJavaDescription().c_str());
             Scierror(999, _("%s: Execution Java stack: %s.\n"), fname, ex.getJavaStackTrace().c_str());
             Scierror(999,
index b93a91b..6380902 100644 (file)
@@ -65,7 +65,7 @@ wchar_t **getDiaryFilenames(int *array_size)
     {
         std::list<std::wstring> wstringFilenames = SCIDIARY->getFilenames();
         *array_size = (int)wstringFilenames.size();
-        if (array_size > 0)
+        if (*array_size > 0)
         {
             wchar_t **wcFilenames = (wchar_t **) MALLOC (sizeof(wchar_t*) * (*array_size));
             int i = 0;
index 12c1ddc..8542e45 100644 (file)
@@ -987,8 +987,8 @@ types::Function::ReturnValue sci_grand(types::typed_list &in, int _iRetCount, ty
                 pDblOut->set(i, static_cast<double>(piOut[i]));
             }
 
-            delete piP;
-            delete piOut;
+            delete[] piP;
+            delete[] piOut;
 
             out.push_back(pDblOut);
             break;
index 769a91a..f7494a4 100644 (file)
@@ -476,10 +476,11 @@ types::Function::ReturnValue sci_model2blk(types::typed_list &in, int _iRetCount
             }
 
             Block.inptr[i] = MALLOC(size);
-            if (Block.inptr == nullptr)
+            if (Block.inptr[i] == nullptr)
             {
                 freeBlock(&Block);
                 Scierror(888, _("%s : Allocation error.\n"), name.data());
+                // FIXME memleak on the previous Block.inptr[i]
                 return types::Function::Error;
             }
 
index 027a09d..b381ae1 100644 (file)
@@ -42,12 +42,12 @@ int sci_closeSciNotesFromScilab(char * fname, void* pvApiCtx)
             SciNotes::closeSciNotesFromScilab(jvm);
         }
     }
-    catch (GiwsException::JniCallMethodException exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
         return 0;
     }
-    catch (GiwsException::JniException exception)
+    catch (const GiwsException::JniException& exception)
     {
         Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
         return 0;
index 9675c81..e07d15f 100644 (file)
@@ -45,11 +45,11 @@ int sci_scinotes(char * fname, void* pvApiCtx)
         {
             callSciNotesW(NULL, 0);
         }
-        catch (GiwsException::JniCallMethodException exception)
+        catch (const GiwsException::JniCallMethodException& exception)
         {
             Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
         }
-        catch (GiwsException::JniException exception)
+        catch (const GiwsException::JniException& exception)
         {
             Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
         }
@@ -260,7 +260,7 @@ int sci_scinotes(char * fname, void* pvApiCtx)
                 {
                     callSciNotesWWithOption(pStVarOne, pStVarTwo, m2 * n2, m1 * n1);
                 }
-                catch (GiwsException::JniCallMethodException exception)
+                catch (const GiwsException::JniCallMethodException& exception)
                 {
                     Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
                     freeArrayOfWideString(pStVarTwo, m2 * n2);
@@ -269,7 +269,7 @@ int sci_scinotes(char * fname, void* pvApiCtx)
                     FREE(lenStVarOne);
                     return 0;
                 }
-                catch (GiwsException::JniException exception)
+                catch (const GiwsException::JniException& exception)
                 {
                     Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
                     freeArrayOfWideString(pStVarTwo, m2 * n2);
@@ -346,11 +346,11 @@ int sci_scinotes(char * fname, void* pvApiCtx)
                 {
                     callSciNotesWWithLineNumberAndFunction(pStVarOne, pdblVarTwo, functionName, m1 * n1);
                 }
-                catch (GiwsException::JniCallMethodException exception)
+                catch (const GiwsException::JniCallMethodException& exception)
                 {
                     Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
                 }
-                catch (GiwsException::JniException exception)
+                catch (const GiwsException::JniException& exception)
                 {
                     Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
                 }
@@ -362,11 +362,11 @@ int sci_scinotes(char * fname, void* pvApiCtx)
             {
                 callSciNotesW(pStVarOne, m1 * n1);
             }
-            catch (GiwsException::JniCallMethodException exception)
+            catch (const GiwsException::JniCallMethodException& exception)
             {
                 Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
             }
-            catch (GiwsException::JniException exception)
+            catch (const GiwsException::JniException& exception)
             {
                 Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
             }
index 880fb1d..b829cbe 100644 (file)
@@ -46,7 +46,7 @@ types::Function::ReturnValue sci_sparse(types::typed_list &in, int _piRetCount,
             case types::InternalType::ScilabBool :
             case types::InternalType::ScilabSparseBool :
             {
-                isValid = (i == (in.size() > 1) ? 1 : 0);
+                isValid = (i == (in.size() > 1 ? 1 : 0));
             }
             case types::InternalType::ScilabDouble :
             case types::InternalType::ScilabSparse :
index b6993e5..04d090a 100644 (file)
@@ -160,7 +160,7 @@ void cdf_error(char const * const fname, int status, double bound)
             {
                 Scierror(999, _("%s: cumgam returned an error\n"), fname);
             }
-            else if (strcmp(fname, "cdfchi") == 0)
+            else if (strcmp(fname, "cdfgam") == 0)
             {
                 Scierror(999, _("%s: gamma or inverse gamma routine failed\n"), fname);
             }
index f44791f..86585fe 100644 (file)
@@ -273,8 +273,7 @@ static int ParseNumber(const char* tx)
     {
         return 4;
     }
-    else if (strlen(tx) >= 3 && (strncmp(tx, "+%e", 3) == 0 || strncmp(tx, "-%e", 3) == 0 || strncmp(tx, "%pi", 3) == 0 ||
-                                 strncmp(tx, "Nan", 3) == 0 || strncmp(tx, "Inf", 3) == 0 || strncmp(tx, "%pi", 3) == 0))
+    else if (strlen(tx) >= 3 && (strncmp(tx, "+%e", 3) == 0 || strncmp(tx, "-%e", 3) == 0 || strncmp(tx, "%pi", 3) == 0 || strncmp(tx, "Nan", 3) == 0 || strncmp(tx, "Inf", 3) == 0))
     {
         return 3;
     }
index 416a3a5..3b472f7 100644 (file)
@@ -146,7 +146,7 @@ types::Function::ReturnValue sci_winqueryreg(types::typed_list &in, int _iRetCou
                 }
                 else
                 {
-                    Scierror(999, _("%s: Cannot open Windows registry.\n"), fname);
+                    Scierror(999, _("%s: Cannot open Windows registry.\n"), fname.data());
                     return types::Function::Error;
                 }
             }
index ca67b9f..97e25af 100644 (file)
@@ -268,6 +268,10 @@ char **CreateOuput(pipeinfo *pipe, BOOL DetachProcess)
                 if (pipe->NumberOfLines)
                 {
                     OuputStrings = (char**)MALLOC((pipe->NumberOfLines) * sizeof(char*));
+                    if (OuputStrings == NULL)
+                    {
+                        return NULL;
+                    }
                     memset(OuputStrings, 0x00, sizeof(char*) * pipe->NumberOfLines);
                     if (OuputStrings)
                     {
index 114fc72..ef564a5 100644 (file)
@@ -177,7 +177,7 @@ static int callXcos(char *fname, char* file, long diagramId)
     {
         Xcos::xcos(getScilabJavaVM(), file, diagramId);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         std::cerr << exception.getJavaExceptionName() << std::endl;
         std::cerr << exception.getJavaDescription() << std::endl;
@@ -187,7 +187,7 @@ static int callXcos(char *fname, char* file, long diagramId)
                  exception.getJavaDescription().c_str());
         return 1;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         std::cerr << exception.getJavaExceptionName() << std::endl;
         std::cerr << exception.getJavaDescription() << std::endl;
index a8c7b04..a2dd5df 100644 (file)
@@ -57,7 +57,7 @@ int sci_xcosAddToolsMenu(char *fname, void *pvApiCtx)
         FREE(label);
         FREE(callback);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
 
@@ -65,7 +65,7 @@ int sci_xcosAddToolsMenu(char *fname, void *pvApiCtx)
         FREE(callback);
         return 0;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
 
index 80c8332..b4f986e 100644 (file)
@@ -59,7 +59,7 @@ int sci_xcosConfigureXmlFile(char *fname, void* pvApiCtx)
         FREE(init);
         FREE(relations);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
 
@@ -67,7 +67,7 @@ int sci_xcosConfigureXmlFile(char *fname, void* pvApiCtx)
         FREE(relations);
         return 0;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
 
index 4459c6a..a01274a 100644 (file)
@@ -139,13 +139,13 @@ static types::InternalType* importFile(char const* file)
     {
         Xcos::xcosDiagramToScilab(getScilabJavaVM(), file, uid, false);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         Scierror(999, "%s: %s\n%s\n", funname, exception.getJavaDescription().c_str(), exception.getJavaStackTrace().c_str());
         controller.deleteObject(uid);
         return nullptr;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         Scierror(999, "%s: %s\n", funname, exception.whatStr().c_str());
         controller.deleteObject(uid);
@@ -172,12 +172,12 @@ static bool exportFile(int index, char const* file, types::InternalType* type)
     {
         Xcos::xcosDiagramToScilab(getScilabJavaVM(), file, o->id(), true);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         Scierror(999, "%s: %s\n%s\n", funname, exception.getJavaDescription().c_str(), exception.getJavaStackTrace().c_str());
         return false;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         Scierror(999, "%s: %s\n", funname, exception.whatStr().c_str());
         return false;
index e070526..8834cdd 100644 (file)
@@ -66,13 +66,13 @@ int sci_xcosPalCategoryAdd(char *fname, void* pvApiCtx)
     {
         Palette::addCategory(getScilabJavaVM(), name, nameLength, visible);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         releaseVectorString(name, nameLength);
         Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
         return 0;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         releaseVectorString(name, nameLength);
         Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
index 29be968..a5fd76c 100644 (file)
@@ -50,13 +50,13 @@ int sci_xcosPalDelete(char *fname, void* pvApiCtx)
     {
         Palette::remove(getScilabJavaVM(), name, nameLength);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         releaseVectorString(name, nameLength);
         Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
         return 0;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         releaseVectorString(name, nameLength);
         Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
index 5811c76..ba60025 100644 (file)
@@ -50,13 +50,13 @@ int sci_xcosPalDisable(char *fname, void* pvApiCtx)
     {
         Palette::enable(getScilabJavaVM(), name, nameLength, false);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         releaseVectorString(name, nameLength);
         Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
         return 0;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         releaseVectorString(name, nameLength);
         Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
index e6ff032..9d13592 100644 (file)
@@ -51,13 +51,13 @@ int sci_xcosPalEnable(char *fname, void* pvApiCtx)
     {
         Palette::enable(getScilabJavaVM(), name, nameLength, true);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         releaseVectorString(name, nameLength);
         Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
         return 0;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         releaseVectorString(name, nameLength);
         Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
index ef9aaa4..6849a22 100644 (file)
@@ -81,12 +81,12 @@ types::Function::ReturnValue sci_xcosPalGenerateIcon(types::typed_list &in, int
     {
         Palette::generatePaletteIcon(getScilabJavaVM(), o->id(), iconPath.c_str());
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         Scierror(999, "%s: %s\n", funname, exception.getJavaDescription().c_str());
         return types::Function::Error;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         Scierror(999, "%s: %s\n", funname, exception.whatStr().c_str());
         return types::Function::Error;
index 19c7d16..82f0dd3 100644 (file)
@@ -50,13 +50,13 @@ int sci_xcosPalGet(char *fname, void* pvApiCtx)
     {
         Palette::get(getScilabJavaVM(), category, lenCategory);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         releaseVectorString(category, lenCategory);
         Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
         return 0;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         releaseVectorString(category, lenCategory);
         Scierror(999, "%s: %s\n", fname, exception.whatStr().c_str());
index 1d16773..8248863 100644 (file)
@@ -68,7 +68,7 @@ int sci_xcosPalLoad(char *fname, void* pvApiCtx)
             Palette::loadPal(getScilabJavaVM(), name, category, lenCategory);
         }
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         if (category != NULL)
         {
@@ -78,7 +78,7 @@ int sci_xcosPalLoad(char *fname, void* pvApiCtx)
         Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
         return 0;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         if (category != NULL)
         {
index 00d3a6e..9e7491f 100644 (file)
@@ -60,14 +60,14 @@ int sci_xcosPalMove(char *fname, void* pvApiCtx)
     {
         Palette::move(getScilabJavaVM(), source, sourceLength, target, targetLength);
     }
-    catch (GiwsException::JniCallMethodException &exception)
+    catch (const GiwsException::JniCallMethodException& exception)
     {
         releaseVectorString(source, sourceLength);
         releaseVectorString(target, targetLength);
         Scierror(999, "%s: %s\n", fname, exception.getJavaDescription().c_str());
         return 0;
     }
-    catch (GiwsException::JniException &exception)
+    catch (const GiwsException::JniException& exception)
     {
         releaseVectorString(source, sourceLength);
         releaseVectorString(target, targetLength);