[gnumeric] Deps: further dep tracking improvements.



commit b751f12808186e7d39de1e90ed1171e267b6c9d1
Author: Morten Welinder <terra gnome org>
Date:   Thu Aug 6 19:24:47 2020 -0400

    Deps: further dep tracking improvements.

 src/dependent.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
---
diff --git a/src/dependent.c b/src/dependent.c
index beb16e1088..fa9f768f11 100644
--- a/src/dependent.c
+++ b/src/dependent.c
@@ -1264,12 +1264,19 @@ link_unlink_expr_dep (GnmEvalPos *ep, GnmExpr const *tree, DepLinkFlags flags)
        g_return_val_if_fail (tree != NULL, DEPENDENT_NO_FLAG);
 
        switch (GNM_EXPR_GET_OPER (tree)) {
-       case GNM_EXPR_OP_RANGE_CTOR:  /* See #562363 */
+       case GNM_EXPR_OP_RANGE_CTOR:
        case GNM_EXPR_OP_INTERSECT:
+               return (link_unlink_expr_dep (ep, tree->binary.value_a, flags) |
+                       link_unlink_expr_dep (ep, tree->binary.value_b, flags));
        case GNM_EXPR_OP_ANY_BINARY:
+               // See comments in function_iterate_argument_values
+               if (!eval_pos_is_array_context (ep))
+                       flags &= ~DEP_LINK_NON_SCALAR;
                return (link_unlink_expr_dep (ep, tree->binary.value_a, flags) |
                        link_unlink_expr_dep (ep, tree->binary.value_b, flags));
        case GNM_EXPR_OP_ANY_UNARY:
+               if (!eval_pos_is_array_context (ep))
+                       flags &= ~DEP_LINK_NON_SCALAR;
                return link_unlink_expr_dep (ep, tree->unary.value, flags);
        case GNM_EXPR_OP_CELLREF:
                return link_unlink_single_dep (ep->dep, dependent_pos (ep->dep), &tree->cellref.ref, flags);


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