[gnumeric] Deps: fix intersection dependency tracking.



commit 2602cbadd5f69addf96e1234c56856c7e6321086
Author: Morten Welinder <terra gnome org>
Date:   Sun Jul 12 17:32:29 2020 -0400

    Deps: fix intersection dependency tracking.

 src/dependent.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/src/dependent.c b/src/dependent.c
index 5f021b08c..0bcc177c0 100644
--- a/src/dependent.c
+++ b/src/dependent.c
@@ -1179,8 +1179,10 @@ link_unlink_constant (GnmEvalPos *ep, GnmValue const *v, DepLinkFlags flags)
        if (!dependent_is_cell (ep->dep))
                goto everything; // Must figure out semantics first
 
-       if ((flags & DEP_LINK_NON_SCALAR) &&
-           eval_pos_is_array_context (ep))
+       if (flags & DEP_LINK_NON_SCALAR)
+               goto everything;
+
+       if (eval_pos_is_array_context (ep))
                goto everything; // Potential implicit iteration -- bail
 
        // Inspiration from value_intersection:
@@ -1246,6 +1248,10 @@ link_unlink_funcall (GnmEvalPos *ep, GnmExprFunction const *call, DepLinkFlags f
                        ? DEP_LINK_NON_SCALAR
                        : 0;
 
+               if (0)
+                       g_printerr ("%s, arg %d: %c\n",
+                                   gnm_func_get_name (call->func, FALSE),
+                                   i, t);
                flag |= link_unlink_expr_dep (ep, call->argv[i], pass | extra);
        }
        return flag;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]