# HG changeset patch # User John W. Eaton # Date 1294916572 18000 # Node ID 41866901ec624bd6967a3c218e685af6c9e29fdc # Parent c3ad80f4ce3620daef87aac8bfa9e7685fe31499 Sparse.cc: more constructor fixes diff -r c3ad80f4ce36 -r 41866901ec62 liboctave/ChangeLog --- a/liboctave/ChangeLog Thu Jan 13 06:01:08 2011 -0500 +++ b/liboctave/ChangeLog Thu Jan 13 06:02:52 2011 -0500 @@ -1,3 +1,8 @@ +2011-01-13 John W. Eaton + + * Sparse.cc (Sparse::Sparse): Initialize all data members in + initialization lists. + 2011-01-13 John W. Eaton * Array.cc (rec_permute_helper::rec_permute_helper, diff -r c3ad80f4ce36 -r 41866901ec62 liboctave/Sparse.cc --- a/liboctave/Sparse.cc Thu Jan 13 06:01:08 2011 -0500 +++ b/liboctave/Sparse.cc Thu Jan 13 06:02:52 2011 -0500 @@ -173,7 +173,7 @@ template Sparse::Sparse (octave_idx_type nr, octave_idx_type nc, T val) - : dimensions (dim_vector (nr, nc)) + : rep (0), dimensions (dim_vector (nr, nc)) { if (val != T ()) { @@ -201,7 +201,7 @@ template Sparse::Sparse (const dim_vector& dv) - : dimensions (dv) + : rep (0), dimensions (dv) { if (dv.length() != 2) (*current_liboctave_error_handler) @@ -212,7 +212,7 @@ template Sparse::Sparse (const Sparse& a, const dim_vector& dv) - : dimensions (dv) + : rep (0), dimensions (dv) { // Work in unsigned long long to avoid overflow issues with numel @@ -259,22 +259,20 @@ const idx_vector& c, octave_idx_type nr, octave_idx_type nc, bool sum_terms, octave_idx_type nzm) - : rep (nil_rep ()), dimensions () + : rep (0), dimensions () { if (nr < 0) - nr = r.extent (0); + nr = r.extent (0); else if (r.extent (nr) > nr) (*current_liboctave_error_handler) ("sparse: row index %d out of bound %d", r.extent (nr), nr); if (nc < 0) - nc = c.extent (0); + nc = c.extent (0); else if (c.extent (nc) > nc) - (*current_liboctave_error_handler) ("sparse: column index %d out of bound %d", - r.extent (nc), nc); + (*current_liboctave_error_handler) + ("sparse: column index %d out of bound %d", r.extent (nc), nc); - if (--rep->count == 0) - delete rep; rep = new SparseRep (nr, nc); dimensions = dim_vector (nr, nc); @@ -598,7 +596,7 @@ template Sparse::Sparse (const Array& a) - : dimensions (a.dims ()) + : rep (0), dimensions (a.dims ()) { if (dimensions.length () > 2) (*current_liboctave_error_handler)