# HG changeset patch # User John W. Eaton # Date 1627393996 14400 # Node ID adda9f3ac61ff46cd4433368c529f54a60cbcc52 # Parent 6b7ac07ffa85956b71cf1fe75f587a35781fb07f use m_ prefix for data members in octave_map classes * oct-map.h, oct-map.cc: Use m_ prefix for class data members. diff -r 6b7ac07ffa85 -r adda9f3ac61f libinterp/corefcn/oct-map.cc --- a/libinterp/corefcn/oct-map.cc Mon Jul 26 19:53:02 2021 +0200 +++ b/libinterp/corefcn/oct-map.cc Tue Jul 27 09:53:16 2021 -0400 @@ -43,60 +43,60 @@ } octave_fields::octave_fields (const string_vector& fields) - : rep (new fields_rep) + : m_rep (new fields_rep) { octave_idx_type n = fields.numel (); for (octave_idx_type i = 0; i < n; i++) - (*rep)[fields(i)] = i; + (*m_rep)[fields(i)] = i; } octave_fields::octave_fields (const char * const *fields) - : rep (new fields_rep) + : m_rep (new fields_rep) { octave_idx_type n = 0; while (*fields) - (*rep)[std::string (*fields++)] = n++; + (*m_rep)[std::string (*fields++)] = n++; } bool octave_fields::isfield (const std::string& field) const { - return rep->find (field) != rep->end (); + return m_rep->find (field) != m_rep->end (); } octave_idx_type octave_fields::getfield (const std::string& field) const { - auto p = rep->find (field); - return (p != rep->end ()) ? p->second : -1; + auto p = m_rep->find (field); + return (p != m_rep->end ()) ? p->second : -1; } octave_idx_type octave_fields::getfield (const std::string& field) { - auto p = rep->find (field); - if (p != rep->end ()) + auto p = m_rep->find (field); + if (p != m_rep->end ()) return p->second; else { make_unique (); - octave_idx_type n = rep->size (); - return (*rep)[field] = n; + octave_idx_type n = m_rep->size (); + return (*m_rep)[field] = n; } } octave_idx_type octave_fields::rmfield (const std::string& field) { - auto p = rep->find (field); - if (p == rep->end ()) + auto p = m_rep->find (field); + if (p == m_rep->end ()) return -1; else { octave_idx_type n = p->second; make_unique (); - rep->erase (field); - for (auto& fld_idx : *rep) + m_rep->erase (field); + for (auto& fld_idx : *m_rep) { if (fld_idx.second >= n) fld_idx.second--; @@ -109,12 +109,12 @@ void octave_fields::orderfields (Array& perm) { - octave_idx_type n = rep->size (); + octave_idx_type n = m_rep->size (); perm.clear (n, 1); make_unique (); octave_idx_type i = 0; - for (auto& fld_idx : *rep) + for (auto& fld_idx : *m_rep) { octave_idx_type j = fld_idx.second; fld_idx.second = i; @@ -170,38 +170,38 @@ (const std::map& m) { std::size_t sz = m.size (); - xvals.resize (sz); + m_vals.resize (sz); std::size_t i = 0; for (const auto& k_v : m) { - xkeys.getfield (k_v.first); - xvals[i++] = k_v.second; + m_keys.getfield (k_v.first); + m_vals[i++] = k_v.second; } } octave_value octave_scalar_map::getfield (const std::string& k) const { - octave_idx_type idx = xkeys.getfield (k); - return (idx >= 0) ? xvals[idx] : octave_value (); + octave_idx_type idx = m_keys.getfield (k); + return (idx >= 0) ? m_vals[idx] : octave_value (); } void octave_scalar_map::setfield (const std::string& k, const octave_value& val) { - octave_idx_type idx = xkeys.getfield (k); - if (idx < static_cast (xvals.size ())) - xvals[idx] = val; + octave_idx_type idx = m_keys.getfield (k); + if (idx < static_cast (m_vals.size ())) + m_vals[idx] = val; else - xvals.push_back (val); + m_vals.push_back (val); } void octave_scalar_map::rmfield (const std::string& k) { - octave_idx_type idx = xkeys.rmfield (k); + octave_idx_type idx = m_keys.rmfield (k); if (idx >= 0) - xvals.erase (xvals.begin () + idx); + m_vals.erase (m_vals.begin () + idx); } octave_scalar_map @@ -214,12 +214,12 @@ octave_scalar_map octave_scalar_map::orderfields (Array& perm) const { - octave_scalar_map retval (xkeys); - retval.xkeys.orderfields (perm); + octave_scalar_map retval (m_keys); + retval.m_keys.orderfields (perm); octave_idx_type nf = nfields (); for (octave_idx_type i = 0; i < nf; i++) - retval.xvals[i] = xvals[perm.xelem (i)]; + retval.m_vals[i] = m_vals[perm.xelem (i)]; return retval; } @@ -228,17 +228,17 @@ octave_scalar_map::orderfields (const octave_scalar_map& other, Array& perm) const { - if (xkeys.is_same (other.xkeys)) + if (m_keys.is_same (other.m_keys)) return *this; else { - octave_scalar_map retval (other.xkeys); - if (! other.xkeys.equal_up_to_order (xkeys, perm)) + octave_scalar_map retval (other.m_keys); + if (! other.m_keys.equal_up_to_order (m_keys, perm)) error ("orderfields: structs must have same fields up to order"); octave_idx_type nf = nfields (); for (octave_idx_type i = 0; i < nf; i++) - retval.xvals[i] = xvals[perm.xelem (i)]; + retval.m_vals[i] = m_vals[perm.xelem (i)]; return retval; } @@ -253,53 +253,53 @@ octave_value& octave_scalar_map::contents (const std::string& k) { - octave_idx_type idx = xkeys.getfield (k); - if (idx >= static_cast (xvals.size ())) - xvals.resize (idx+1); - return xvals[idx]; + octave_idx_type idx = m_keys.getfield (k); + if (idx >= static_cast (m_vals.size ())) + m_vals.resize (idx+1); + return m_vals[idx]; } octave_map::octave_map (const octave_scalar_map& m) - : xkeys (m.xkeys), xvals (), dimensions (1, 1) + : m_keys (m.m_keys), m_vals (), m_dimensions (1, 1) { octave_idx_type nf = m.nfields (); - xvals.reserve (nf); + m_vals.reserve (nf); for (octave_idx_type i = 0; i < nf; i++) { - xvals.push_back (Cell (dimensions)); - xvals[i].xelem (0) = m.xvals[i]; + m_vals.push_back (Cell (m_dimensions)); + m_vals[i].xelem (0) = m.m_vals[i]; } } Cell octave_map::getfield (const std::string& k) const { - octave_idx_type idx = xkeys.getfield (k); - return (idx >= 0) ? xvals[idx] : Cell (); + octave_idx_type idx = m_keys.getfield (k); + return (idx >= 0) ? m_vals[idx] : Cell (); } void octave_map::setfield (const std::string& k, const Cell& val) { if (nfields () == 0) - dimensions = val.dims (); + m_dimensions = val.dims (); - if (val.dims () != dimensions) + if (val.dims () != m_dimensions) error ("octave_map::setfield: internal error"); - octave_idx_type idx = xkeys.getfield (k); - if (idx < static_cast (xvals.size ())) - xvals[idx] = val; + octave_idx_type idx = m_keys.getfield (k); + if (idx < static_cast (m_vals.size ())) + m_vals[idx] = val; else - xvals.push_back (val); + m_vals.push_back (val); } void octave_map::rmfield (const std::string& k) { - octave_idx_type idx = xkeys.rmfield (k); + octave_idx_type idx = m_keys.rmfield (k); if (idx >= 0) - xvals.erase (xvals.begin () + idx); + m_vals.erase (m_vals.begin () + idx); } octave_map @@ -312,12 +312,12 @@ octave_map octave_map::orderfields (Array& perm) const { - octave_map retval (xkeys); - retval.xkeys.orderfields (perm); + octave_map retval (m_keys); + retval.m_keys.orderfields (perm); octave_idx_type nf = nfields (); for (octave_idx_type i = 0; i < nf; i++) - retval.xvals[i] = xvals[perm.xelem (i)]; + retval.m_vals[i] = m_vals[perm.xelem (i)]; return retval; } @@ -326,17 +326,17 @@ octave_map::orderfields (const octave_map& other, Array& perm) const { - if (xkeys.is_same (other.xkeys)) + if (m_keys.is_same (other.m_keys)) return *this; else { - octave_map retval (other.xkeys); - if (! other.xkeys.equal_up_to_order (xkeys, perm)) + octave_map retval (other.m_keys); + if (! other.m_keys.equal_up_to_order (m_keys, perm)) error ("orderfields: structs must have same fields up to order"); octave_idx_type nf = nfields (); for (octave_idx_type i = 0; i < nf; i++) - retval.xvals[i] = xvals[perm.xelem (i)]; + retval.m_vals[i] = m_vals[perm.xelem (i)]; return retval; } @@ -351,10 +351,10 @@ Cell& octave_map::contents (const std::string& k) { - octave_idx_type idx = xkeys.getfield (k); - if (idx >= static_cast (xvals.size ())) - xvals.push_back (Cell (dimensions)); // auto-set correct dims. - return xvals[idx]; + octave_idx_type idx = m_keys.getfield (k); + if (idx >= static_cast (m_vals.size ())) + m_vals.push_back (Cell (m_dimensions)); // auto-set correct dims. + return m_vals[idx]; } void @@ -363,16 +363,16 @@ { octave_idx_type nf = nfields (); for (octave_idx_type i = 0; i < nf; i++) - dest.xvals[i] = xvals[i](idx); + dest.m_vals[i] = m_vals[i](idx); } octave_scalar_map octave_map::elem (octave_idx_type n) const { - octave_scalar_map retval (xkeys); + octave_scalar_map retval (m_keys); // Optimize this so that there is just one check. - extract_scalar (retval, compute_index (n, dimensions)); + extract_scalar (retval, compute_index (n, m_dimensions)); return retval; } @@ -380,10 +380,10 @@ octave_scalar_map octave_map::elem (octave_idx_type i, octave_idx_type j) const { - octave_scalar_map retval (xkeys); + octave_scalar_map retval (m_keys); // Optimize this so that there is just one check. - extract_scalar (retval, compute_index (i, j, dimensions)); + extract_scalar (retval, compute_index (i, j, m_dimensions)); return retval; } @@ -391,10 +391,10 @@ octave_scalar_map octave_map::elem (const Array& ra_idx) const { - octave_scalar_map retval (xkeys); + octave_scalar_map retval (m_keys); // Optimize this so that there is just one check. - extract_scalar (retval, compute_index (ra_idx, dimensions)); + extract_scalar (retval, compute_index (ra_idx, m_dimensions)); return retval; } @@ -402,7 +402,7 @@ octave_scalar_map octave_map::fast_elem_extract (octave_idx_type n) const { - octave_scalar_map retval (xkeys); + octave_scalar_map retval (m_keys); extract_scalar (retval, n); @@ -416,20 +416,20 @@ bool retval = false; octave_idx_type nf = nfields (); - if (rhs.xkeys.is_same (xkeys)) + if (rhs.m_keys.is_same (m_keys)) { for (octave_idx_type i = 0; i < nf; i++) - xvals[i](n) = rhs.xvals[i]; + m_vals[i](n) = rhs.m_vals[i]; retval = true; } else { OCTAVE_LOCAL_BUFFER (octave_idx_type, perm, nf); - if (xkeys.equal_up_to_order (rhs.xkeys, perm)) + if (m_keys.equal_up_to_order (rhs.m_keys, perm)) { for (octave_idx_type i = 0; i < nf; i++) - xvals[i](n) = rhs.xvals[perm[i]]; + m_vals[i](n) = rhs.m_vals[perm[i]]; retval = true; } @@ -444,10 +444,10 @@ octave_map retval (*this); octave_idx_type nf = nfields (); - retval.dimensions = dimensions.squeeze (); + retval.m_dimensions = m_dimensions.squeeze (); for (octave_idx_type i = 0; i < nf; i++) - retval.xvals[i] = xvals[i].squeeze (); + retval.m_vals[i] = m_vals[i].squeeze (); retval.optimize_dimensions (); @@ -455,7 +455,7 @@ } /* -## test preservation of xkeys by squeeze +## test preservation of m_keys by squeeze %!test %! x(1,1,1,1).d = 10; x(3,5,1,7).a = "b"; x(2,4,1,7).f = 27; %! assert (fieldnames (squeeze (x)), {"d"; "a"; "f"}); @@ -464,23 +464,23 @@ octave_map octave_map::permute (const Array& vec, bool inv) const { - octave_map retval (xkeys); + octave_map retval (m_keys); octave_idx_type nf = nfields (); for (octave_idx_type i = 0; i < nf; i++) - retval.xvals[i] = xvals[i].permute (vec, inv); + retval.m_vals[i] = m_vals[i].permute (vec, inv); // FIXME: // There is no dim_vector::permute for technical reasons. // We pick the dim vector from results if possible, otherwise use a dummy // array to get it. Need (?) a better solution to this problem. if (nf > 0) - retval.dimensions = retval.xvals[0].dims (); + retval.m_dimensions = retval.m_vals[0].dims (); else { - Array dummy (dimensions); + Array dummy (m_dimensions); dummy = dummy.permute (vec, inv); - retval.dimensions = dummy.dims (); + retval.m_dimensions = dummy.dims (); } retval.optimize_dimensions (); @@ -500,13 +500,13 @@ { assert (ndims () == 2); - octave_map retval (xkeys); + octave_map retval (m_keys); - retval.dimensions = dim_vector (dimensions (1), dimensions (0)); + retval.m_dimensions = dim_vector (m_dimensions (1), m_dimensions (0)); octave_idx_type nf = nfields (); for (octave_idx_type i = 0; i < nf; i++) - retval.xvals[i] = xvals[i].transpose (); + retval.m_vals[i] = m_vals[i].transpose (); retval.optimize_dimensions (); @@ -525,25 +525,25 @@ octave_map octave_map::reshape (const dim_vector& dv) const { - octave_map retval (xkeys); - retval.dimensions = dv; + octave_map retval (m_keys); + retval.m_dimensions = dv; - // When reshaping xvals the Array constructor chops trailing singletons, + // When reshaping m_vals the Array constructor chops trailing singletons, // hence we need to do the same for the whole map. - retval.dimensions.chop_trailing_singletons (); + retval.m_dimensions.chop_trailing_singletons (); octave_idx_type nf = nfields (); if (nf > 0) { - retval.xvals.reserve (nf); + retval.m_vals.reserve (nf); for (octave_idx_type i = 0; i < nf; i++) - retval.xvals[i] = xvals[i].reshape (dv); + retval.m_vals[i] = m_vals[i].reshape (dv); } else { // FIXME: Do it with a dummy array, to reuse error message. // Need (?) a better solution. - Array dummy (dimensions); + Array dummy (m_dimensions); dummy.reshape (dv); } @@ -581,20 +581,20 @@ for (octave_idx_type i = 0; i < nf; i++) { if (fill) - xvals[i].resize (dv, Matrix ()); + m_vals[i].resize (dv, Matrix ()); else - xvals[i].resize (dv); + m_vals[i].resize (dv); } } else { // FIXME: Do it with a dummy array, to reuse error message. // Need (?) a better solution. - Array dummy (dimensions); + Array dummy (m_dimensions); dummy.resize (dv); } - dimensions = dv; + m_dimensions = dv; optimize_dimensions (); } @@ -604,19 +604,19 @@ octave_map& retval) { octave_idx_type nf = retval.nfields (); - retval.xvals.reserve (nf); + retval.m_vals.reserve (nf); - dim_vector& rd = retval.dimensions; + dim_vector& rd = retval.m_dimensions; rd.resize (dim+1, 1); rd(0) = rd(1) = 1; rd(dim) = n; for (octave_idx_type j = 0; j < nf; j++) { - retval.xvals.push_back (Cell (rd)); - assert (retval.xvals[j].numel () == n); + retval.m_vals.push_back (Cell (rd)); + assert (retval.m_vals[j].numel () == n); for (octave_idx_type i = 0; i < n; i++) - retval.xvals[j].xelem (i) = map_list[i].xvals[j]; + retval.m_vals[j].xelem (i) = map_list[i].m_vals[j]; } } @@ -625,18 +625,18 @@ octave_map& retval) { octave_idx_type nf = retval.nfields (); - retval.xvals.reserve (nf); + retval.m_vals.reserve (nf); OCTAVE_LOCAL_BUFFER (Array, field_list, n); for (octave_idx_type j = 0; j < nf; j++) { for (octave_idx_type i = 0; i < n; i++) - field_list[i] = map_list[i].xvals[j]; + field_list[i] = map_list[i].m_vals[j]; - retval.xvals.push_back (Array::cat (dim, n, field_list)); + retval.m_vals.push_back (Array::cat (dim, n, field_list)); if (j == 0) - retval.dimensions = retval.xvals[j].dims (); + retval.m_dimensions = retval.m_vals[j].dims (); } } @@ -707,7 +707,7 @@ nf = map_list[idx].nfields (); if (nf > 0) { - retval.xkeys = map_list[idx].xkeys; + retval.m_keys = map_list[idx].m_keys; break; } } @@ -718,7 +718,7 @@ bool all_same = true; for (octave_idx_type i = 0; i < n; i++) { - all_same = map_list[idx].xkeys.is_same (map_list[i].xkeys); + all_same = map_list[idx].m_keys.is_same (map_list[i].m_keys); if (! all_same) break; } @@ -738,7 +738,7 @@ } else { - dim_vector& rd = retval.dimensions; + dim_vector& rd = retval.m_dimensions; rd.resize (dim+1, 1); rd(0) = rd(1) = 1; rd(dim) = n; @@ -772,7 +772,7 @@ nf = map_list[idx].nfields (); if (nf > 0) { - retval.xkeys = map_list[idx].xkeys; + retval.m_keys = map_list[idx].m_keys; break; } } @@ -784,7 +784,7 @@ { for (octave_idx_type i = 0; i < n; i++) { - all_same = map_list[idx].xkeys.is_same (map_list[i].xkeys); + all_same = map_list[idx].m_keys.is_same (map_list[i].m_keys); if (! all_same) break; @@ -806,15 +806,15 @@ } else { - dim_vector dv = map_list[0].dimensions; + dim_vector dv = map_list[0].m_dimensions; for (octave_idx_type i = 1; i < n; i++) { - if (! dv.concat (map_list[i].dimensions, dim)) + if (! dv.concat (map_list[i].m_dimensions, dim)) error ("dimension mismatch in struct concatenation"); } - retval.dimensions = dv; + retval.m_dimensions = dv; } } @@ -847,20 +847,20 @@ octave_map octave_map::index (const octave::idx_vector& i, bool resize_ok) const { - octave_map retval (xkeys); + octave_map retval (m_keys); octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - retval.xvals[k] = xvals[k].index (i, resize_ok); + retval.m_vals[k] = m_vals[k].index (i, resize_ok); if (nf > 0) - retval.dimensions = retval.xvals[0].dims (); + retval.m_dimensions = retval.m_vals[0].dims (); else { // Use dummy array. FIXME: Need(?) a better solution. - Array dummy (dimensions); + Array dummy (m_dimensions); dummy = dummy.index (i, resize_ok); - retval.dimensions = dummy.dims (); + retval.m_dimensions = dummy.dims (); } retval.optimize_dimensions (); @@ -872,20 +872,20 @@ octave_map::index (const octave::idx_vector& i, const octave::idx_vector& j, bool resize_ok) const { - octave_map retval (xkeys); + octave_map retval (m_keys); octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - retval.xvals[k] = xvals[k].index (i, j, resize_ok); + retval.m_vals[k] = m_vals[k].index (i, j, resize_ok); if (nf > 0) - retval.dimensions = retval.xvals[0].dims (); + retval.m_dimensions = retval.m_vals[0].dims (); else { // Use dummy array. FIXME: Need(?) a better solution. - Array dummy (dimensions); + Array dummy (m_dimensions); dummy = dummy.index (i, j, resize_ok); - retval.dimensions = dummy.dims (); + retval.m_dimensions = dummy.dims (); } retval.optimize_dimensions (); @@ -896,20 +896,20 @@ octave_map octave_map::index (const Array& ia, bool resize_ok) const { - octave_map retval (xkeys); + octave_map retval (m_keys); octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - retval.xvals[k] = xvals[k].index (ia, resize_ok); + retval.m_vals[k] = m_vals[k].index (ia, resize_ok); if (nf > 0) - retval.dimensions = retval.xvals[0].dims (); + retval.m_dimensions = retval.m_vals[0].dims (); else { // Use dummy array. FIXME: Need(?) a better solution. - Array dummy (dimensions); + Array dummy (m_dimensions); dummy = dummy.index (ia, resize_ok); - retval.dimensions = dummy.dims (); + retval.m_dimensions = dummy.dims (); } retval.optimize_dimensions (); @@ -993,28 +993,28 @@ void octave_map::assign (const octave::idx_vector& i, const octave_map& rhs) { - if (rhs.xkeys.is_same (xkeys)) + if (rhs.m_keys.is_same (m_keys)) { octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - xvals[k].assign (i, rhs.xvals[k], Matrix ()); + m_vals[k].assign (i, rhs.m_vals[k], Matrix ()); if (nf > 0) - dimensions = xvals[0].dims (); + m_dimensions = m_vals[0].dims (); else { // Use dummy array. FIXME: Need(?) a better solution. - Array dummy (dimensions), rhs_dummy (rhs.dimensions); + Array dummy (m_dimensions), rhs_dummy (rhs.m_dimensions); dummy.assign (i, rhs_dummy);; - dimensions = dummy.dims (); + m_dimensions = dummy.dims (); } optimize_dimensions (); } else if (nfields () == 0) { - octave_map tmp (dimensions, rhs.xkeys); + octave_map tmp (m_dimensions, rhs.m_keys); tmp.assign (i, rhs); *this = tmp; } @@ -1032,7 +1032,7 @@ error (ee, "incompatible fields in struct assignment"); } - assert (rhs1.xkeys.is_same (xkeys)); + assert (rhs1.m_keys.is_same (m_keys)); assign (i, rhs1); } } @@ -1041,28 +1041,28 @@ octave_map::assign (const octave::idx_vector& i, const octave::idx_vector& j, const octave_map& rhs) { - if (rhs.xkeys.is_same (xkeys)) + if (rhs.m_keys.is_same (m_keys)) { octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - xvals[k].assign (i, j, rhs.xvals[k], Matrix ()); + m_vals[k].assign (i, j, rhs.m_vals[k], Matrix ()); if (nf > 0) - dimensions = xvals[0].dims (); + m_dimensions = m_vals[0].dims (); else { // Use dummy array. FIXME: Need(?) a better solution. - Array dummy (dimensions), rhs_dummy (rhs.dimensions); + Array dummy (m_dimensions), rhs_dummy (rhs.m_dimensions); dummy.assign (i, j, rhs_dummy);; - dimensions = dummy.dims (); + m_dimensions = dummy.dims (); } optimize_dimensions (); } else if (nfields () == 0) { - octave_map tmp (dimensions, rhs.xkeys); + octave_map tmp (m_dimensions, rhs.m_keys); tmp.assign (i, j, rhs); *this = tmp; } @@ -1080,7 +1080,7 @@ error (ee, "incompatible fields in struct assignment"); } - assert (rhs1.xkeys.is_same (xkeys)); + assert (rhs1.m_keys.is_same (m_keys)); assign (i, j, rhs1); } } @@ -1089,28 +1089,28 @@ octave_map::assign (const Array& ia, const octave_map& rhs) { - if (rhs.xkeys.is_same (xkeys)) + if (rhs.m_keys.is_same (m_keys)) { octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - xvals[k].assign (ia, rhs.xvals[k], Matrix ()); + m_vals[k].assign (ia, rhs.m_vals[k], Matrix ()); if (nf > 0) - dimensions = xvals[0].dims (); + m_dimensions = m_vals[0].dims (); else { // Use dummy array. FIXME: Need(?) a better solution. - Array dummy (dimensions), rhs_dummy (rhs.dimensions); + Array dummy (m_dimensions), rhs_dummy (rhs.m_dimensions); dummy.assign (ia, rhs_dummy);; - dimensions = dummy.dims (); + m_dimensions = dummy.dims (); } optimize_dimensions (); } else if (nfields () == 0) { - octave_map tmp (dimensions, rhs.xkeys); + octave_map tmp (m_dimensions, rhs.m_keys); tmp.assign (ia, rhs); *this = tmp; } @@ -1128,7 +1128,7 @@ error (ee, "incompatible fields in struct assignment"); } - assert (rhs1.xkeys.is_same (xkeys)); + assert (rhs1.m_keys.is_same (m_keys)); assign (ia, rhs1); } } @@ -1196,19 +1196,19 @@ Cell& ref = (p != end () ? contents (p) : tmp); if (&ref == &tmp) - ref = Cell (dimensions); + ref = Cell (m_dimensions); ref.assign (idx, rhs); - if (ref.dims () != dimensions) + if (ref.dims () != m_dimensions) { - dimensions = ref.dims (); + m_dimensions = ref.dims (); octave_idx_type nf = nfields (); for (octave_idx_type i = 0; i < nf; i++) { - if (&xvals[i] != &ref) - xvals[i].resize (dimensions, Matrix ()); + if (&m_vals[i] != &ref) + m_vals[i].resize (m_dimensions, Matrix ()); } optimize_dimensions (); @@ -1230,16 +1230,16 @@ { octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - xvals[k].delete_elements (i); + m_vals[k].delete_elements (i); if (nf > 0) - dimensions = xvals[0].dims (); + m_dimensions = m_vals[0].dims (); else { // Use dummy array. FIXME: Need(?) a better solution. - Array dummy (dimensions); + Array dummy (m_dimensions); dummy.delete_elements (i); - dimensions = dummy.dims (); + m_dimensions = dummy.dims (); } optimize_dimensions (); @@ -1250,16 +1250,16 @@ { octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - xvals[k].delete_elements (dim, i); + m_vals[k].delete_elements (dim, i); if (nf > 0) - dimensions = xvals[0].dims (); + m_dimensions = m_vals[0].dims (); else { // Use dummy array. FIXME: Need(?) a better solution. - Array dummy (dimensions); + Array dummy (m_dimensions); dummy.delete_elements (dim, i); - dimensions = dummy.dims (); + m_dimensions = dummy.dims (); } optimize_dimensions (); @@ -1270,16 +1270,16 @@ { octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - xvals[k].delete_elements (ia); + m_vals[k].delete_elements (ia); if (nf > 0) - dimensions = xvals[0].dims (); + m_dimensions = m_vals[0].dims (); else { // Use dummy array. FIXME: Need(?) a better solution. - Array dummy (dimensions); + Array dummy (m_dimensions); dummy.delete_elements (ia); - dimensions = dummy.dims (); + m_dimensions = dummy.dims (); } optimize_dimensions (); @@ -1351,7 +1351,7 @@ for (octave_idx_type i = 0; i < nf; i++) { - if (! xvals[i].optimize_dimensions (dimensions)) + if (! m_vals[i].optimize_dimensions (m_dimensions)) error ("internal error: dimension mismatch across fields in struct"); } diff -r 6b7ac07ffa85 -r adda9f3ac61f libinterp/corefcn/oct-map.h --- a/libinterp/corefcn/oct-map.h Mon Jul 26 19:53:02 2021 +0200 +++ b/libinterp/corefcn/oct-map.h Tue Jul 27 09:53:16 2021 -0400 @@ -45,56 +45,56 @@ class fields_rep : public std::map { public: - fields_rep (void) : std::map (), count (1) { } + fields_rep (void) : std::map (), m_count (1) { } fields_rep (const fields_rep& other) - : std::map (other), count (1) { } + : std::map (other), m_count (1) { } - octave::refcount count; + octave::refcount m_count; private: fields_rep& operator = (const fields_rep&); // no assignment! }; - fields_rep *rep; + fields_rep *m_rep; static fields_rep *nil_rep (void); public: - octave_fields (void) : rep (nil_rep ()) { rep->count++; } + octave_fields (void) : m_rep (nil_rep ()) { m_rep->m_count++; } octave_fields (const string_vector&); octave_fields (const char * const *); ~octave_fields (void) { - if (--rep->count == 0) - delete rep; + if (--m_rep->m_count == 0) + delete m_rep; } void make_unique (void) { - if (rep->count > 1) + if (m_rep->m_count > 1) { - fields_rep *r = new fields_rep (*rep); + fields_rep *r = new fields_rep (*m_rep); - if (--rep->count == 0) - delete rep; + if (--m_rep->m_count == 0) + delete m_rep; - rep = r; + m_rep = r; } } - octave_fields (const octave_fields& o) : rep (o.rep) { rep->count++; } + octave_fields (const octave_fields& o) : m_rep (o.m_rep) { m_rep->m_count++; } octave_fields& operator = (const octave_fields& o) { if (&o != this) { - o.rep->count++; - if (--rep->count == 0) - delete rep; - rep = o.rep; + o.m_rep->m_count++; + if (--m_rep->m_count == 0) + delete m_rep; + m_rep = o.m_rep; } return *this; @@ -105,22 +105,22 @@ typedef std::map::const_iterator const_iterator; typedef const_iterator iterator; - const_iterator begin (void) const { return rep->begin (); } - const_iterator end (void) const { return rep->end (); } + const_iterator begin (void) const { return m_rep->begin (); } + const_iterator end (void) const { return m_rep->end (); } - const_iterator cbegin (void) const { return rep->cbegin (); } - const_iterator cend (void) const { return rep->cend (); } + const_iterator cbegin (void) const { return m_rep->cbegin (); } + const_iterator cend (void) const { return m_rep->cend (); } std::string key (const_iterator p) const { return p->first; } octave_idx_type index (const_iterator p) const { return p->second; } const_iterator seek (const std::string& k) const - { return rep->find (k); } + { return m_rep->find (k); } // high-level methods. // number of fields. - octave_idx_type nfields (void) const { return rep->size (); } + octave_idx_type nfields (void) const { return m_rep->size (); } // check whether a field exists. bool isfield (const std::string& name) const; @@ -146,7 +146,7 @@ Array& perm) const; bool is_same (const octave_fields& other) const - { return rep == other.rep; } + { return m_rep == other.m_rep; } // Returns the fields as a vector of strings. string_vector fieldnames (void) const; @@ -163,22 +163,22 @@ public: octave_scalar_map (const octave_fields& k) - : xkeys (k), xvals (k.nfields ()) { } + : m_keys (k), m_vals (k.nfields ()) { } - octave_scalar_map (void) : xkeys (), xvals () { } + octave_scalar_map (void) : m_keys (), m_vals () { } octave_scalar_map (const string_vector& k) - : xkeys (k), xvals (k.numel ()) { } + : m_keys (k), m_vals (k.numel ()) { } octave_scalar_map (const octave_scalar_map& m) - : xkeys (m.xkeys), xvals (m.xvals) { } + : m_keys (m.m_keys), m_vals (m.m_vals) { } octave_scalar_map (const std::map& m); octave_scalar_map& operator = (const octave_scalar_map& m) { - xkeys = m.xkeys; - xvals = m.xvals; + m_keys = m.m_keys; + m_vals = m.m_vals; return *this; } @@ -189,43 +189,43 @@ typedef octave_fields::const_iterator const_iterator; typedef const_iterator iterator; - const_iterator begin (void) const { return xkeys.begin (); } - const_iterator end (void) const { return xkeys.end (); } + const_iterator begin (void) const { return m_keys.begin (); } + const_iterator end (void) const { return m_keys.end (); } - const_iterator cbegin (void) const { return xkeys.cbegin (); } - const_iterator cend (void) const { return xkeys.cend (); } + const_iterator cbegin (void) const { return m_keys.cbegin (); } + const_iterator cend (void) const { return m_keys.cend (); } - const_iterator seek (const std::string& k) const { return xkeys.seek (k); } + const_iterator seek (const std::string& k) const { return m_keys.seek (k); } std::string key (const_iterator p) const - { return xkeys.key (p); } + { return m_keys.key (p); } octave_idx_type index (const_iterator p) const - { return xkeys.index (p); } + { return m_keys.index (p); } const octave_value& contents (const_iterator p) const - { return xvals[xkeys.index (p)]; } + { return m_vals[m_keys.index (p)]; } octave_value& contents (iterator p) - { return xvals[xkeys.index (p)]; } + { return m_vals[m_keys.index (p)]; } const octave_value& contents (octave_idx_type i) const - { return xvals[i]; } + { return m_vals[i]; } octave_value& contents (octave_idx_type i) - { return xvals[i]; } + { return m_vals[i]; } // number of fields. - octave_idx_type nfields (void) const { return xkeys.nfields (); } + octave_idx_type nfields (void) const { return m_keys.nfields (); } // check whether a field exists. bool isfield (const std::string& name) const - { return xkeys.isfield (name); } + { return m_keys.isfield (name); } bool contains (const std::string& name) const { return isfield (name); } string_vector fieldnames (void) const - { return xkeys.fieldnames (); } + { return m_keys.fieldnames (); } string_vector keys (void) const { return fieldnames (); } @@ -254,16 +254,16 @@ void clear (void) { - xkeys.clear (); - xvals.clear (); + m_keys.clear (); + m_vals.clear (); } friend class octave_map; private: - octave_fields xkeys; - std::vector xvals; + octave_fields m_keys; + std::vector m_vals; }; @@ -278,33 +278,33 @@ public: octave_map (const octave_fields& k) - : xkeys (k), xvals (k.nfields ()), dimensions () { } + : m_keys (k), m_vals (k.nfields ()), m_dimensions () { } octave_map (const dim_vector& dv, const octave_fields& k) - : xkeys (k), xvals (k.nfields (), Cell (dv)), dimensions (dv) { } + : m_keys (k), m_vals (k.nfields (), Cell (dv)), m_dimensions (dv) { } typedef octave_scalar_map element_type; - octave_map (void) : xkeys (), xvals (), dimensions () { } + octave_map (void) : m_keys (), m_vals (), m_dimensions () { } - octave_map (const dim_vector& dv) : xkeys (), xvals (), dimensions (dv) { } + octave_map (const dim_vector& dv) : m_keys (), m_vals (), m_dimensions (dv) { } octave_map (const string_vector& k) - : xkeys (k), xvals (k.numel (), Cell (1, 1)), dimensions (1, 1) { } + : m_keys (k), m_vals (k.numel (), Cell (1, 1)), m_dimensions (1, 1) { } octave_map (const dim_vector& dv, const string_vector& k) - : xkeys (k), xvals (k.numel (), Cell (dv)), dimensions (dv) { } + : m_keys (k), m_vals (k.numel (), Cell (dv)), m_dimensions (dv) { } octave_map (const octave_map& m) - : xkeys (m.xkeys), xvals (m.xvals), dimensions (m.dimensions) { } + : m_keys (m.m_keys), m_vals (m.m_vals), m_dimensions (m.m_dimensions) { } octave_map (const octave_scalar_map& m); octave_map& operator = (const octave_map& m) { - xkeys = m.xkeys; - xvals = m.xvals; - dimensions = m.dimensions; + m_keys = m.m_keys; + m_vals = m.m_vals; + m_dimensions = m.m_dimensions; return *this; } @@ -315,43 +315,43 @@ typedef octave_fields::const_iterator const_iterator; typedef const_iterator iterator; - const_iterator begin (void) const { return xkeys.begin (); } - const_iterator end (void) const { return xkeys.end (); } + const_iterator begin (void) const { return m_keys.begin (); } + const_iterator end (void) const { return m_keys.end (); } - const_iterator cbegin (void) const { return xkeys.cbegin (); } - const_iterator cend (void) const { return xkeys.cend (); } + const_iterator cbegin (void) const { return m_keys.cbegin (); } + const_iterator cend (void) const { return m_keys.cend (); } - const_iterator seek (const std::string& k) const { return xkeys.seek (k); } + const_iterator seek (const std::string& k) const { return m_keys.seek (k); } std::string key (const_iterator p) const - { return xkeys.key (p); } + { return m_keys.key (p); } octave_idx_type index (const_iterator p) const - { return xkeys.index (p); } + { return m_keys.index (p); } const Cell& contents (const_iterator p) const - { return xvals[xkeys.index (p)]; } + { return m_vals[m_keys.index (p)]; } Cell& contents (iterator p) - { return xvals[xkeys.index (p)]; } + { return m_vals[m_keys.index (p)]; } const Cell& contents (octave_idx_type i) const - { return xvals[i]; } + { return m_vals[i]; } Cell& contents (octave_idx_type i) - { return xvals[i]; } + { return m_vals[i]; } // number of fields. - octave_idx_type nfields (void) const { return xkeys.nfields (); } + octave_idx_type nfields (void) const { return m_keys.nfields (); } // check whether a field exists. bool isfield (const std::string& name) const - { return xkeys.isfield (name); } + { return m_keys.isfield (name); } bool contains (const std::string& name) const { return isfield (name); } string_vector fieldnames (void) const - { return xkeys.fieldnames (); } + { return m_keys.fieldnames (); } string_vector keys (void) const { return fieldnames (); } @@ -360,7 +360,7 @@ Cell getfield (const std::string& key) const; // set contents of a given field. add if not exist. checks for - // correct dimensions. + // correct m_dimensions. void setfield (const std::string& key, const Cell& val); void assign (const std::string& k, const Cell& val) { setfield (k, val); } @@ -381,18 +381,18 @@ void clear (void) { - xkeys.clear (); - xvals.clear (); + m_keys.clear (); + m_vals.clear (); } // The Array-like methods. - octave_idx_type numel (void) const { return dimensions.numel (); } + octave_idx_type numel (void) const { return m_dimensions.numel (); } octave_idx_type length (void) const { return numel (); } - bool isempty (void) const { return dimensions.any_zero (); } + bool isempty (void) const { return m_dimensions.any_zero (); } - octave_idx_type rows (void) const { return dimensions(0); } - octave_idx_type cols (void) const { return dimensions(1); } - octave_idx_type columns (void) const { return dimensions(1); } + octave_idx_type rows (void) const { return m_dimensions(0); } + octave_idx_type cols (void) const { return m_dimensions(1); } + octave_idx_type columns (void) const { return m_dimensions(1); } // Extract a scalar substructure. // FIXME: actually check something. @@ -427,9 +427,9 @@ octave_map permute (const Array& vec, bool inv = false) const; - dim_vector dims (void) const { return dimensions; } + dim_vector dims (void) const { return m_dimensions; } - int ndims (void) const { return dimensions.ndims (); } + int ndims (void) const { return m_dimensions.ndims (); } octave_map transpose (void) const; @@ -487,9 +487,9 @@ private: - octave_fields xkeys; - std::vector xvals; - dim_vector dimensions; + octave_fields m_keys; + std::vector m_vals; + dim_vector m_dimensions; void optimize_dimensions (void); void extract_scalar (octave_scalar_map& dest,