Mercurial > hg > octave-nkf
changeset 11503:b3f511c48b14
idx-vector.h, idx-vector.cc: data member initialization and constructor fixes
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 13 Jan 2011 03:27:29 -0500 |
parents | 4638800cd660 |
children | 81ff63e43f54 |
files | liboctave/ChangeLog liboctave/idx-vector.cc liboctave/idx-vector.h |
diffstat | 3 files changed, 31 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,15 @@ +2011-01-13 John W. Eaton <jwe@octave.org> + + * idx-vector.h (idx_vector_rep::idx_vector_rep, + idx_vector::idx_mask_rep::idx_mask_rep): + Initialize all data members in initialization lists. + + * idx-vector.cc (idx_vector::idx_scalar_rep::idx_scalar_rep): + Initialize data in member initialization list. + (class idx_base_rep, class idx_colon_rep, class idx_range_rep, + class idx_scalar_rep, class idx_vector_rep, class idx_mask_rep): + Don't allow assignment. + 2011-01-13 John W. Eaton <jwe@octave.org> * DAE.h (DAE::~DAE): Now virtual.
--- a/liboctave/idx-vector.cc +++ b/liboctave/idx-vector.cc @@ -264,6 +264,7 @@ template <class T> idx_vector::idx_scalar_rep::idx_scalar_rep (T x) + : data (0) { octave_idx_type dummy = 0; @@ -340,7 +341,7 @@ idx_vector::idx_vector_rep::idx_vector_rep (const Array<octave_idx_type>& inda) : data (inda.data ()), len (inda.numel ()), ext (0), - aowner (new Array<octave_idx_type> (inda)), orig_dims (inda.dims ()) + aowner (new Array<octave_idx_type> (inda)), orig_dims (inda.dims ()) { if (len != 0) {
--- a/liboctave/idx-vector.h +++ b/liboctave/idx-vector.h @@ -111,6 +111,7 @@ // No copying! idx_base_rep (const idx_base_rep&); + idx_base_rep& operator = (const idx_base_rep&); }; // The magic colon index. @@ -146,6 +147,7 @@ // No copying! idx_colon_rep (const idx_colon_rep& idx); + idx_colon_rep& operator = (const idx_colon_rep& idx); }; // To distinguish the "direct" constructors that blindly trust the data. @@ -206,6 +208,7 @@ // No copying! idx_range_rep (const idx_range_rep& idx); + idx_range_rep& operator = (const idx_range_rep& idx); octave_idx_type start, len, step; @@ -262,6 +265,7 @@ // No copying! idx_scalar_rep (const idx_scalar_rep& idx); + idx_scalar_rep& operator = (const idx_scalar_rep& idx); octave_idx_type data; @@ -277,7 +281,7 @@ : data (_data), len (_len), ext (_ext), aowner (0), orig_dims (od) { } idx_vector_rep (void) - : data (0), len (0), aowner (0) + : data (0), len (0), ext (0), aowner (0), orig_dims () { } // Zero-based constructor. @@ -328,9 +332,11 @@ // No copying! idx_vector_rep (const idx_vector_rep& idx); + idx_vector_rep& operator = (const idx_vector_rep& idx); const octave_idx_type *data; - octave_idx_type len, ext; + octave_idx_type len; + octave_idx_type ext; // This is a trick to allow user-given zero-based arrays to be used // as indices without copying. If the following pointer is nonzero, @@ -351,10 +357,12 @@ // Direct constructor. idx_mask_rep (bool *_data, octave_idx_type _len, octave_idx_type _ext, const dim_vector& od, direct) - : data (_data), len (_len), ext (_ext), aowner (0), orig_dims (od) { } + : data (_data), len (_len), ext (_ext), lsti (-1), lste (-1), + aowner (0), orig_dims (od) { } idx_mask_rep (void) - : data (0), len (0), aowner (0) + : data (0), len (0), ext (0), lsti (-1), lste (-1), aowner (0), + orig_dims () { } idx_mask_rep (bool); @@ -398,13 +406,16 @@ // No copying! idx_mask_rep (const idx_mask_rep& idx); + idx_mask_rep& operator = (const idx_mask_rep& idx); const bool *data; - octave_idx_type len, ext; + octave_idx_type len; + octave_idx_type ext; // FIXME: I'm not sure if this is a good design. Maybe it would be // better to employ some sort of generalized iteration scheme. - mutable octave_idx_type lsti, lste; + mutable octave_idx_type lsti; + mutable octave_idx_type lste; // This is a trick to allow user-given mask arrays to be used as // indices without copying. If the following pointer is nonzero, we