@@ -24,12 +24,10 @@ void Layer::ResetReading() const
2424 _layer->ResetReading ();
2525}
2626
27- Feature* Layer::NextFeature () const
27+ Feature Layer::NextFeature () const
2828{
2929 OGRFeature* feature = _layer->GetNextFeature ();
30- if (feature)
31- return new Feature (feature);
32- return nullptr ;
30+ return Feature (feature);
3331}
3432
3533Layer::iterator Layer::begin () const
@@ -48,7 +46,8 @@ OGRFeatureDefn* Layer::FeatureDefinition()
4846}
4947
5048Layer::FeatureIterator::FeatureIterator (const Layer* layer, bool start)
51- : _layer(layer)
49+ : _layer(layer),
50+ _currentFeature(nullptr )
5251{
5352 if (start)
5453 {
@@ -75,7 +74,7 @@ Layer::FeatureIterator& Layer::FeatureIterator::operator=(const FeatureIterator&
7574
7675Layer::FeatureIterator::reference Layer::FeatureIterator::operator *() const
7776{
78- return * _currentFeature. get () ;
77+ return _currentFeature;
7978}
8079
8180Layer::FeatureIterator& Layer::FeatureIterator::operator ++()
@@ -93,7 +92,7 @@ Layer::FeatureIterator Layer::FeatureIterator::operator++(int)
9392
9493bool Layer::FeatureIterator::operator ==(const FeatureIterator& rhs)
9594{
96- return _currentFeature. get () == rhs._currentFeature . get () ;
95+ return _currentFeature == rhs._currentFeature ;
9796}
9897
9998bool Layer::FeatureIterator::operator !=(const FeatureIterator& rhs)
@@ -103,5 +102,5 @@ bool Layer::FeatureIterator::operator!=(const FeatureIterator& rhs)
103102
104103void Layer::FeatureIterator::NextFeature ()
105104{
106- _currentFeature. reset ( _layer->NextFeature () );
105+ _currentFeature = _layer->NextFeature ();
107106}
0 commit comments