@@ -80,17 +80,10 @@ class MapEntry {
80
80
81
81
class MapIterator {
82
82
public:
83
- MapIterator () = default ;
84
- MapIterator (MapEntry entry, size_t depth = 0 )
85
- : m_entry(std::move(entry)), m_max_depth(depth), m_error(false ) {}
86
- MapIterator (ValueObjectSP entry, size_t depth = 0 )
87
- : m_entry(std::move(entry)), m_max_depth(depth), m_error(false ) {}
88
- MapIterator (const MapIterator &rhs)
89
- : m_entry(rhs.m_entry), m_max_depth(rhs.m_max_depth), m_error(false ) {}
90
83
MapIterator (ValueObject *entry, size_t depth = 0 )
91
84
: m_entry(entry), m_max_depth(depth), m_error(false ) {}
92
85
93
- MapIterator & operator =( const MapIterator & ) = default ;
86
+ MapIterator ( ) = default ;
94
87
95
88
ValueObjectSP value () { return m_entry.GetEntry (); }
96
89
@@ -108,7 +101,9 @@ class MapIterator {
108
101
return m_entry.GetEntry ();
109
102
}
110
103
111
- protected:
104
+ private:
105
+ // / Mimicks libc++'s __tree_next algorithm, which libc++ uses
106
+ // / in its __tree_iteartor::operator++.
112
107
void next () {
113
108
if (m_entry.null ())
114
109
return ;
@@ -133,7 +128,7 @@ class MapIterator {
133
128
m_entry = MapEntry (m_entry.parent ());
134
129
}
135
130
136
- private:
131
+ // / Mimicks libc++'s __tree_min algorithm.
137
132
MapEntry tree_min (MapEntry x) {
138
133
if (x.null ())
139
134
return MapEntry ();
0 commit comments