Skip to content

Commit

Permalink
handles two null values as equal, since they can be handled as not eq…
Browse files Browse the repository at this point in the history
…ual by == comparison.
  • Loading branch information
signedav committed Aug 15, 2019
1 parent 82ae686 commit 9b236a0
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/core/qgis.cpp
Expand Up @@ -297,5 +297,5 @@ uint qHash( const QVariant &variant )

bool qgsVariantEqual( const QVariant &lhs, const QVariant &rhs )
{
return lhs.isNull() == rhs.isNull() && lhs == rhs;
return ( lhs.isNull() == rhs.isNull() && lhs == rhs ) || ( lhs.isNull() && rhs.isNull() );
}
3 changes: 2 additions & 1 deletion src/core/qgis.h
Expand Up @@ -503,7 +503,8 @@ CORE_EXPORT qlonglong qgsPermissiveToLongLong( QString string, bool &ok );
CORE_EXPORT bool qgsVariantLessThan( const QVariant &lhs, const QVariant &rhs );

/**
* Compares two QVariant values and returns whether they are equal, NULL values are treated as equal.
* Compares two QVariant values and returns whether they are equal, two NULL values are
* always treated as equal and 0 is not treated as equal with NULL
*
* \param lhs first value
* \param rhs second value
Expand Down
2 changes: 2 additions & 0 deletions tests/src/core/testqgis.cpp
Expand Up @@ -393,6 +393,8 @@ void TestQgis::testQgsVariantEqual()
// NULL identities
QVERIFY( qgsVariantEqual( QVariant( QVariant::Int ), QVariant( QVariant::Int ) ) );
QVERIFY( qgsVariantEqual( QVariant( QVariant::Double ), QVariant( QVariant::Double ) ) );
QVERIFY( qgsVariantEqual( QVariant( QVariant::Int ), QVariant( QVariant::Double ) ) );
QVERIFY( qgsVariantEqual( QVariant( QVariant::Int ), QVariant( QVariant::String ) ) );
}

void TestQgis::testQgsEnumValueToKey()
Expand Down

0 comments on commit 9b236a0

Please sign in to comment.