]> git.vpit.fr Git - perl/modules/Sub-Nary.git/commitdiff
Fix discrepancy between add('list',1) and add({list=>1},1) in favor of the latter
authorVincent Pit <vince@profvince.com>
Wed, 20 Aug 2008 12:40:15 +0000 (14:40 +0200)
committerVincent Pit <vince@profvince.com>
Wed, 20 Aug 2008 12:40:15 +0000 (14:40 +0200)
Nary.xs
t/15-misc-xs.t

diff --git a/Nary.xs b/Nary.xs
index 95fca936f633ac054718d4f3ab0d9582bddcdb15..bcdde48999c3c4fc881ee43c181495fe4ca9d3c7 100644 (file)
--- a/Nary.xs
+++ b/Nary.xs
@@ -171,17 +171,11 @@ CODE:
   if (!SvOK(cur))
    continue;
   if (!SvROK(cur)) {
-   if (strEQ(SvPV_nolen(cur), "list")) {
-    hv_clear(res);
-    sn_store(res, "list", 4, newSVuv(1), sn_hash_list);
-    break;
-   } else {
-    NV v = 1;
-    if ((old = hv_fetch_ent(res, cur, 1, 0)) && SvOK(val = HeVAL(old)))
-     v += SvNV(val);
-    sn_store_ent(res, cur, newSVnv(v), 0);
-    continue;
-   }
+   NV v = 1;
+   if ((old = hv_fetch_ent(res, cur, 1, 0)) && SvOK(val = HeVAL(old)))
+    v += SvNV(val);
+   sn_store_ent(res, cur, newSVnv(v), 0);
+   continue;
   }
   cur = SvRV(cur);
   hv_iterinit((HV *) cur);
index bd6baacc1d70327a48de9dd925ef61b9de0a9f4a..80de3c5a02b9c198d7436964eecb4addf4ec3f1b 100644 (file)
@@ -23,11 +23,11 @@ is_deeply(scale(1, {}), { 0 => 1 }, 'scale const, empty-ref');
 
 *add = *Sub::Nary::add{CODE};
 
-is_deeply(add('list'),             { list => 1 }, 'add list');
-is_deeply(add(1, 'list'),          { list => 1 }, 'add const, list');
-is_deeply(add({ }, 'list'),        { list => 1 }, 'add empty-ref, list');
-is_deeply(add({ 1 => 1 }, 'list'), { list => 1 }, 'add ref, list');
-is_deeply(add({ 1 => 1 }, 1),      { 1 => 2 }, 'add ref, prev-const');
+is_deeply(add('list'),             { list => 1 },         'add list');
+is_deeply(add(1, 'list'),          { 1 => 1, list => 1 }, 'add const, list');
+is_deeply(add({ }, 'list'),        { list => 1 },        'add empty-ref, list');
+is_deeply(add({ 1 => 1 }, 'list'), { 1 => 1, list => 1 }, 'add ref, list');
+is_deeply(add({ 1 => 1 }, 1),      { 1 => 2 },           'add ref, prev-const');
 
 *cumulate = *Sub::Nary::cumulate{CODE};