CID #1369054: after 8d1276905457012a041517b354c6c758feb0784e 23/18923/1
Antoine ELIAS [Sat, 21 Jan 2017 08:38:09 +0000 (09:38 +0100)]
Change-Id: I0be76cc8865be0a8dc25ed8bb6dbb20a72929d6c

scilab/modules/mexlib/src/cpp/mexlib.cpp

index 94be86c..48676d7 100644 (file)
@@ -325,6 +325,8 @@ void mxDestroyArray(mxArray *ptr)
     {
         delete (types::InternalType*)ptr->ptr;
     }
+
+    delete ptr;
 }
 
 mxArray *mxDuplicateArray(const mxArray *ptr)
@@ -1623,16 +1625,14 @@ int mexSet(double handle, const char *property, mxArray *value)
 
 mxArray *mexGetVariable(const char *workspace, const char *name)
 {
-    mxArray* ret = NULL;
-    const mxArray* ptr = mexGetVariablePtr(workspace, name);
+    mxArray* ptr = const_cast<mxArray*>(mexGetVariablePtr(workspace, name));
 
     if (ptr && ptr->ptr)
     {
-        ret = new mxArray;
-        ret->ptr = (int*)((types::InternalType*)ptr->ptr)->clone();
+        ptr->ptr = (int*)((types::InternalType*)ptr->ptr)->clone();
     }
 
-    return ret;
+    return ptr;
 }
 
 const mxArray *mexGetVariablePtr(const char *workspace, const char *name)