Mercurial > hg > octave-lyh
changeset 11508:41866901ec62
Sparse.cc: more constructor fixes
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 13 Jan 2011 06:02:52 -0500 |
parents | c3ad80f4ce36 |
children | fc35194006d6 |
files | liboctave/ChangeLog liboctave/Sparse.cc |
diffstat | 2 files changed, 14 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,8 @@ +2011-01-13 John W. Eaton <jwe@octave.org> + + * Sparse.cc (Sparse::Sparse): Initialize all data members in + initialization lists. + 2011-01-13 John W. Eaton <jwe@octave.org> * Array.cc (rec_permute_helper::rec_permute_helper,
--- a/liboctave/Sparse.cc +++ b/liboctave/Sparse.cc @@ -173,7 +173,7 @@ template <class T> Sparse<T>::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 <class T> Sparse<T>::Sparse (const dim_vector& dv) - : dimensions (dv) + : rep (0), dimensions (dv) { if (dv.length() != 2) (*current_liboctave_error_handler) @@ -212,7 +212,7 @@ template <class T> Sparse<T>::Sparse (const Sparse<T>& 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 <class T> Sparse<T>::Sparse (const Array<T>& a) - : dimensions (a.dims ()) + : rep (0), dimensions (a.dims ()) { if (dimensions.length () > 2) (*current_liboctave_error_handler)