bug 3263
Allan Cornet [Tue, 15 Jul 2008 13:49:54 +0000 (13:49 +0000)]
scilab/modules/sparse/src/c/spAllocate.c
scilab/modules/sparse/tests/nonreg_tests/bug_3263.dia.ref [new file with mode: 0644]
scilab/modules/sparse/tests/nonreg_tests/bug_3263.tst [new file with mode: 0644]

index c67967a..174947e 100644 (file)
@@ -66,6 +66,7 @@
 #include "spDefs.h"
 #include "spmalloc.h"
 #include "spAllocate.h"
+#include "MALLOC.h"
 
 static int InitializeElementBlocks( MatrixPtr  Matrix, int InitialNumberOfElements, int NumberOfFillinsExpected );
 
@@ -654,7 +655,7 @@ register  AllocationListPtr  ListPtr, NextListPtr;
       /* BUGUED : SPFREE( ListPtr->AllocatedPtr) */
       LocPtr=ListPtr->AllocatedPtr;
       ListPtr->AllocatedPtr= NULL;
-      if ( LocPtr != NULL) free(LocPtr);
+      if ( LocPtr != NULL) FREE(LocPtr);
       ListPtr = NextListPtr;
     }
     return;
diff --git a/scilab/modules/sparse/tests/nonreg_tests/bug_3263.dia.ref b/scilab/modules/sparse/tests/nonreg_tests/bug_3263.dia.ref
new file mode 100644 (file)
index 0000000..c8b12ce
--- /dev/null
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2007-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 3263 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=3263
+//
+// <-- Short Description -->
+// ludel(h) fails @ rev. 25935
+a=[0.2,0.6,0.6,0.2,0.3;
+0.8,0.8,0.7,0.2,0.9;
+0,0.7,0.7,0.2,0.2;
+0.3,0.9,0.2,0.9,0.3;
+0.7,0.1,0.5,0.7,0.4];
+b=[0.3;0.6;0.5;0.3;0.6];
+A=sparse(a);
+[h,rk]=lufact(A);
+x=lusolve(h,b);
+if norm(a*x-b)>1d-10 then bugmes();quit;end
+[P,L,U,Q]=luget(h);
+if norm(P*L*U*Q-A)>1d-10 then bugmes();quit;end
+ierr = execstr('ludel(h);','errcatch');
+if ierr <> 0 then bugmes();quit;end;
diff --git a/scilab/modules/sparse/tests/nonreg_tests/bug_3263.tst b/scilab/modules/sparse/tests/nonreg_tests/bug_3263.tst
new file mode 100644 (file)
index 0000000..b514194
--- /dev/null
@@ -0,0 +1,39 @@
+// =============================================================================\r
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2007-2008 - INRIA - Serge STEER <serge.steer@inria.fr>\r
+//\r
+//  This file is distributed under the same license as the Scilab package.\r
+// =============================================================================\r
+\r
+// <-- Non-regression test for bug 3263 -->\r
+//\r
+// <-- Bugzilla URL -->\r
+// http://bugzilla.scilab.org/show_bug.cgi?id=3263\r
+//\r
+// <-- Short Description -->\r
+// ludel(h) fails @ rev. 25935\r
+\r
+\r
+a=[0.2,0.6,0.6,0.2,0.3;\r
+0.8,0.8,0.7,0.2,0.9;\r
+0,0.7,0.7,0.2,0.2;\r
+0.3,0.9,0.2,0.9,0.3;\r
+0.7,0.1,0.5,0.7,0.4];\r
+\r
+b=[0.3;0.6;0.5;0.3;0.6];\r
+\r
+A=sparse(a);\r
+\r
+[h,rk]=lufact(A);\r
+\r
+x=lusolve(h,b);\r
+\r
+if norm(a*x-b)>1d-10 then pause,end\r
+\r
+[P,L,U,Q]=luget(h);\r
+\r
+if norm(P*L*U*Q-A)>1d-10 then pause,end\r
+\r
+ierr = execstr('ludel(h);','errcatch');\r
+if ierr <> 0 then pause,end;\r
+\r