Merge remote-tracking branch 'origin/master' into windows
[scilab.git] / scilab / modules / differential_equations / sci_gateway / cpp / sci_daskr.cpp
index 09cef37..3f066ec 100644 (file)
@@ -3,11 +3,14 @@
 * Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
 * Copyright (C) 2013 - Scilab Enterprises - Cedric DELAMARRE
 *
-* This file must be used under the terms of the CeCILL.
-* This source file is licensed as described in the file COPYING, which
-* you should have received as part of this distribution.  The terms
-* are also available at
-* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
 *
 */
 /*--------------------------------------------------------------------------*/
@@ -163,6 +166,9 @@ types::Function::ReturnValue sci_daskr(types::typed_list &in, int _iRetCount, ty
     if (in[iPos]->isDouble() == false)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), "daskr", iPos + 1);
+        FREE(pdYdotData);
+        FREE(pdYData);
+        FREE(YSize);
         return types::Function::Error;
     }
 
@@ -171,6 +177,9 @@ types::Function::ReturnValue sci_daskr(types::typed_list &in, int _iRetCount, ty
     if (pDblT0->isScalar() == false)
     {
         Scierror(999, _("%s: Wrong size for input argument #%d: A scalar expected.\n"), "daskr", iPos + 1);
+        FREE(pdYdotData);
+        FREE(pdYData);
+        FREE(YSize);
         return types::Function::Error;
     }
 
@@ -179,6 +188,9 @@ types::Function::ReturnValue sci_daskr(types::typed_list &in, int _iRetCount, ty
     if (in[iPos]->isDouble() == false)
     {
         Scierror(999, _("%s: Wrong type for input argument #%d: A matrix expected.\n"), "daskr", iPos + 1);
+        FREE(pdYdotData);
+        FREE(pdYData);
+        FREE(YSize);
         return types::Function::Error;
     }
 
@@ -187,6 +199,9 @@ types::Function::ReturnValue sci_daskr(types::typed_list &in, int _iRetCount, ty
     if (pDblT->isComplex())
     {
         Scierror(999, _("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "daskr", iPos + 1);
+        FREE(pdYdotData);
+        FREE(pdYData);
+        FREE(YSize);
         return types::Function::Error;
     }
 
@@ -900,6 +915,7 @@ types::Function::ReturnValue sci_daskr(types::typed_list &in, int _iRetCount, ty
             FREE(YSize);
             FREE(iwork);
             FREE(rwork);
+            FREE(root);
             if (pDblAtol == NULL || pDblAtol->isScalar())
             {
                 FREE(atol);