EO: free a var at the right place 19/10519/1
Calixte DENIZET [Mon, 18 Feb 2013 14:38:42 +0000 (15:38 +0100)]
Change-Id: If71079544785820239d345608b7092969e737624

scilab/modules/external_objects/src/cpp/import.cpp

index 4358022..b284412 100644 (file)
@@ -184,7 +184,6 @@ int ScilabGateway::import(char * fname, const int envId, void * pvApiCtx)
             }
             throw;
         }
-        FREE(cwd);
 
         if (named)
         {
@@ -194,6 +193,7 @@ int ScilabGateway::import(char * fname, const int envId, void * pvApiCtx)
             }
             catch (ScilabAbstractEnvironmentException & e)
             {
+                FREE(cwd);
                 freeAllocatedMatrixOfString(rows, cols, className);
                 delete[] name;
                 throw;
@@ -207,6 +207,7 @@ int ScilabGateway::import(char * fname, const int envId, void * pvApiCtx)
             }
             catch (ScilabAbstractEnvironmentException & e)
             {
+                FREE(cwd);
                 freeAllocatedMatrixOfString(rows, cols, className);
                 env.removeobject(ret);
                 throw;
@@ -215,6 +216,8 @@ int ScilabGateway::import(char * fname, const int envId, void * pvApiCtx)
         }
     }
 
+    FREE(cwd);
+
     freeAllocatedMatrixOfString(rows, cols, className);
     if (named)
     {