zorba-coders team mailing list archive
-
zorba-coders team
-
Mailing list archive
-
Message #20471
[Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
Cezar Andrei has proposed merging lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba.
Commit message:
Fix deep-equal bug 1090083.
Requested reviews:
Cezar Andrei (cezar-andrei)
Sorin Marian Nasoi (sorin.marian.nasoi)
Related bugs:
Bug #1090083 in Zorba: "deep-equal doesn't check type annotations"
https://bugs.launchpad.net/zorba/+bug/1090083
For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/bug1090083-deepEqual/+merge/158509
Fix deep-equal bug 1090083.
--
https://code.launchpad.net/~zorba-coders/zorba/bug1090083-deepEqual/+merge/158509
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'src/runtime/sequences/sequences_impl.cpp'
--- src/runtime/sequences/sequences_impl.cpp 2013-03-26 18:10:32 +0000
+++ src/runtime/sequences/sequences_impl.cpp 2013-04-11 23:41:34 +0000
@@ -926,6 +926,17 @@
if (! item1->getNodeName()->equals(item2->getNodeName()))
return false;
+ TypeManager* tm = sctx->get_typemanager();
+
+ xqtref_t type1 = tm->create_value_type(item1.getp());
+ xqtref_t type2 = tm->create_value_type(item2.getp());
+
+ const NodeXQType* nodeType1 = static_cast<const NodeXQType *>(type1.getp());
+ const NodeXQType* nodeType2 = static_cast<const NodeXQType *>(type2.getp());
+
+ if ( nodeType1->get_content_type()->content_kind() != nodeType2->get_content_type()->content_kind() )
+ return false;
+
return (DeepEqualAttributes(loc,
sctx,
dctx,
@@ -1093,6 +1104,13 @@
item1->isJSONArray() != item2->isJSONArray())
return false;
+
+ xqtref_t type1 = tm->create_value_type(item1.getp());
+ xqtref_t type2 = tm->create_value_type(item2.getp());
+
+ if ( type1->content_kind() != type2->content_kind() )
+ return false;
+
if (item1->isAtomic())
{
assert(item2->isAtomic());
@@ -1102,9 +1120,6 @@
collator = sctx->get_default_collator(QueryLoc::null);
// check NaN
- xqtref_t type1 = tm->create_value_type(item1.getp());
- xqtref_t type2 = tm->create_value_type(item2.getp());
-
if (((TypeOps::is_subtype(tm, *type1, *rtm.FLOAT_TYPE_ONE)
&&
item1->getFloatValue().isNaN())
=== modified file 'test/fots/CMakeLists.txt'
--- test/fots/CMakeLists.txt 2013-04-11 18:13:48 +0000
+++ test/fots/CMakeLists.txt 2013-04-11 23:41:34 +0000
@@ -130,8 +130,6 @@
EXPECTED_FOTS_FAILURE (fn-available-environment-variables fn-available-environment-variables-011 0)
EXPECTED_FOTS_FAILURE (fn-deep-equal K2-SeqDeepEqualFunc-36 0)
EXPECTED_FOTS_FAILURE (fn-deep-equal K2-SeqDeepEqualFunc-37 0)
-EXPECTED_FOTS_FAILURE (fn-deep-equal K2-SeqDeepEqualFunc-38 0)
-EXPECTED_FOTS_FAILURE (fn-deep-equal K2-SeqDeepEqualFunc-39 0)
EXPECTED_FOTS_FAILURE (fn-distinct-values cbcl-distinct-values-002 0)
EXPECTED_FOTS_FAILURE (fn-distinct-values cbcl-distinct-values-002b 0)
EXPECTED_FOTS_FAILURE (fn-environment-variable environment-variable-005 0)
Follow ups
-
[Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: noreply, 2013-04-15
-
[Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Zorba Build Bot, 2013-04-15
-
[Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Zorba Build Bot, 2013-04-15
-
[Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Sorin Marian Nasoi, 2013-04-15
-
Re: [Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Sorin Marian Nasoi, 2013-04-15
-
[Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Zorba Build Bot, 2013-04-12
-
Re: [Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Zorba Build Bot, 2013-04-12
-
[Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Zorba Build Bot, 2013-04-12
-
[Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Zorba Build Bot, 2013-04-11
-
Re: [Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Cezar Andrei, 2013-04-11
-
[Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Cezar Andrei, 2013-04-11
-
[Merge] lp:~zorba-coders/zorba/bug1090083-deepEqual into lp:zorba
From: Cezar Andrei, 2013-04-11