changeset 24256:b8e0bd54a268

maint: merge stable to default.
author Rik <rik@octave.org>
date Wed, 15 Nov 2017 15:22:27 -0800
parents 4bca68f0d8d5 (current diff) 4283c4c2fcb6 (diff)
children 056c799eb0f8
files liboctave/array/CSparse.cc liboctave/array/dSparse.cc
diffstat 2 files changed, 36 insertions(+), 52 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/array/CSparse.cc	Wed Nov 15 14:52:07 2017 -0500
+++ b/liboctave/array/CSparse.cc	Wed Nov 15 15:22:27 2017 -0800
@@ -5714,10 +5714,9 @@
           A->stype = 1;
           A->xtype = CHOLMOD_COMPLEX;
 
-          if (nr < 1)
+          A->x = data ();
+          if (A->x == 0)
             A->x = &dummy;
-          else
-            A->x = data ();
 
           cholmod_dense Bstore;
           cholmod_dense *B = &Bstore;
@@ -5727,11 +5726,10 @@
           B->nzmax = B->nrow * B->ncol;
           B->dtype = CHOLMOD_DOUBLE;
           B->xtype = CHOLMOD_REAL;
-          if (nc < 1 || b.cols () < 1)
+
+          B->x = const_cast<double *>(b.fortran_vec ());
+          if (B->x == 0)
             B->x = &dummy;
-          else
-            // We won't alter it, honest :-)
-            B->x = const_cast<double *>(b.fortran_vec ());
 
           cholmod_factor *L;
           BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
@@ -5966,10 +5964,9 @@
           A->stype = 1;
           A->xtype = CHOLMOD_COMPLEX;
 
-          if (nr < 1)
+          A->x = data ();
+          if (A->x == 0)
             A->x = &dummy;
-          else
-            A->x = data ();
 
           cholmod_sparse Bstore;
           cholmod_sparse *B = &Bstore;
@@ -5990,10 +5987,9 @@
           B->stype = 0;
           B->xtype = CHOLMOD_REAL;
 
-          if (b.rows () < 1 || b.cols () < 1)
+          B->x = b.data ();
+          if (B->x == 0)
             B->x = &dummy;
-          else
-            B->x = b.data ();
 
           cholmod_factor *L;
           BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
@@ -6267,10 +6263,9 @@
           A->stype = 1;
           A->xtype = CHOLMOD_COMPLEX;
 
-          if (nr < 1)
+          A->x = data ();
+          if (A->x == 0)
             A->x = &dummy;
-          else
-            A->x = data ();
 
           cholmod_dense Bstore;
           cholmod_dense *B = &Bstore;
@@ -6280,11 +6275,10 @@
           B->nzmax = B->nrow * B->ncol;
           B->dtype = CHOLMOD_DOUBLE;
           B->xtype = CHOLMOD_COMPLEX;
-          if (nc < 1 || b.cols () < 1)
+
+          B->x = const_cast<Complex *>(b.fortran_vec ());
+          if (B->x == 0)
             B->x = &dummy;
-          else
-            // We won't alter it, honest :-)
-            B->x = const_cast<Complex *>(b.fortran_vec ());
 
           cholmod_factor *L;
           BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
@@ -6498,10 +6492,9 @@
           A->stype = 1;
           A->xtype = CHOLMOD_COMPLEX;
 
-          if (nr < 1)
+          A->x = data ();
+          if (A->x == 0)
             A->x = &dummy;
-          else
-            A->x = data ();
 
           cholmod_sparse Bstore;
           cholmod_sparse *B = &Bstore;
@@ -6522,10 +6515,9 @@
           B->stype = 0;
           B->xtype = CHOLMOD_COMPLEX;
 
-          if (b.rows () < 1 || b.cols () < 1)
+          B->x = b.data ();
+          if (B->x == 0)
             B->x = &dummy;
-          else
-            B->x = b.data ();
 
           cholmod_factor *L;
           BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
--- a/liboctave/array/dSparse.cc	Wed Nov 15 14:52:07 2017 -0500
+++ b/liboctave/array/dSparse.cc	Wed Nov 15 15:22:27 2017 -0800
@@ -5765,10 +5765,9 @@
           A->stype = 1;
           A->xtype = CHOLMOD_REAL;
 
-          if (nr < 1)
+          A->x = data ();
+          if (A->x == 0)
             A->x = &dummy;
-          else
-            A->x = data ();
 
           cholmod_dense Bstore;
           cholmod_dense *B = &Bstore;
@@ -5778,11 +5777,10 @@
           B->nzmax = B->nrow * B->ncol;
           B->dtype = CHOLMOD_DOUBLE;
           B->xtype = CHOLMOD_REAL;
-          if (nc < 1 || b.cols () < 1)
+
+          B->x = const_cast<double *>(b.fortran_vec ());
+          if (B->x == 0)
             B->x = &dummy;
-          else
-            // We won't alter it, honest :-)
-            B->x = const_cast<double *>(b.fortran_vec ());
 
           cholmod_factor *L;
           BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
@@ -5990,10 +5988,9 @@
           A->stype = 1;
           A->xtype = CHOLMOD_REAL;
 
-          if (nr < 1)
+          A->x = data ();
+          if (A->x == 0)
             A->x = &dummy;
-          else
-            A->x = data ();
 
           cholmod_sparse Bstore;
           cholmod_sparse *B = &Bstore;
@@ -6014,10 +6011,9 @@
           B->stype = 0;
           B->xtype = CHOLMOD_REAL;
 
-          if (b.rows () < 1 || b.cols () < 1)
+          B->x = b.data ();
+          if (B->x == 0)
             B->x = &dummy;
-          else
-            B->x = b.data ();
 
           cholmod_factor *L;
           BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
@@ -6261,10 +6257,9 @@
           A->stype = 1;
           A->xtype = CHOLMOD_REAL;
 
-          if (nr < 1)
+          A->x = data ();
+          if (A->x == 0)
             A->x = &dummy;
-          else
-            A->x = data ();
 
           cholmod_dense Bstore;
           cholmod_dense *B = &Bstore;
@@ -6274,11 +6269,10 @@
           B->nzmax = B->nrow * B->ncol;
           B->dtype = CHOLMOD_DOUBLE;
           B->xtype = CHOLMOD_COMPLEX;
-          if (nc < 1 || b.cols () < 1)
+
+          B->x = const_cast<Complex *>(b.fortran_vec ());
+          if (B->x == 0)
             B->x = &dummy;
-          else
-            // We won't alter it, honest :-)
-            B->x = const_cast<Complex *>(b.fortran_vec ());
 
           cholmod_factor *L;
           BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
@@ -6506,10 +6500,9 @@
           A->stype = 1;
           A->xtype = CHOLMOD_REAL;
 
-          if (nr < 1)
+          A->x = data ();
+          if (A->x == 0)
             A->x = &dummy;
-          else
-            A->x = data ();
 
           cholmod_sparse Bstore;
           cholmod_sparse *B = &Bstore;
@@ -6530,10 +6523,9 @@
           B->stype = 0;
           B->xtype = CHOLMOD_COMPLEX;
 
-          if (b.rows () < 1 || b.cols () < 1)
+          B->x = b.data ();
+          if (B->x == 0)
             B->x = &dummy;
-          else
-            B->x = b.data ();
 
           cholmod_factor *L;
           BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;