File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed
Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -441,32 +441,50 @@ bool QgsFields::operator==( const QgsFields &other ) const
441441
442442QgsFields::const_iterator QgsFields::constBegin () const noexcept
443443{
444+ if ( d->fields .isEmpty () )
445+ return const_iterator ();
446+
444447 return const_iterator ( &d->fields .first () );
445448}
446449
447450QgsFields::const_iterator QgsFields::constEnd () const noexcept
448451{
452+ if ( d->fields .isEmpty () )
453+ return const_iterator ();
454+
449455 return const_iterator ( &d->fields .last () + 1 );
450456}
451457
452458QgsFields::const_iterator QgsFields::begin () const noexcept
453459{
460+ if ( d->fields .isEmpty () )
461+ return const_iterator ();
462+
454463 return const_iterator ( &d->fields .first () );
455464}
456465
457466QgsFields::const_iterator QgsFields::end () const noexcept
458467{
468+ if ( d->fields .isEmpty () )
469+ return const_iterator ();
470+
459471 return const_iterator ( &d->fields .last () + 1 );
460472}
461473
462474QgsFields::iterator QgsFields::begin ()
463475{
476+ if ( d->fields .isEmpty () )
477+ return iterator ();
478+
464479 d.detach ();
465480 return iterator ( &d->fields .first () );
466481}
467482
468483QgsFields::iterator QgsFields::end ()
469484{
485+ if ( d->fields .isEmpty () )
486+ return iterator ();
487+
470488 d.detach ();
471489 return iterator ( &d->fields .last () + 1 );
472490}
Original file line number Diff line number Diff line change @@ -494,6 +494,10 @@ void TestQgsFields::qforeach()
494494void TestQgsFields::iterator ()
495495{
496496 QgsFields fields;
497+
498+ // test with empty fields
499+ QCOMPARE ( fields.begin (), fields.end () );
500+
497501 QgsField field ( QString ( " 1" ) );
498502 fields.append ( field );
499503 QgsField field2 ( QString ( " 2" ) );
@@ -531,6 +535,17 @@ void TestQgsFields::iterator()
531535void TestQgsFields::constIterator ()
532536{
533537 QgsFields fields;
538+
539+ // test with empty fields
540+ QCOMPARE ( fields.constBegin (), fields.constEnd () );
541+ QCOMPARE ( const_cast < const QgsFields* >( &fields )->begin (), const_cast < const QgsFields* >( &fields )->end () );
542+ Q_FOREACH ( const QgsField& f, fields )
543+ {
544+ Q_UNUSED ( f );
545+ // should not be called!
546+ QVERIFY ( false );
547+ }
548+
534549 QgsField field ( QString ( QString ( " 1" ) ) );
535550 fields.append ( field );
536551 QgsField field2 ( QString ( QString ( " 2" ) ) );
You can’t perform that action at this time.
0 commit comments