[gnumeric] eval: survice strangeness in arrays.



commit d9535f4b2a26f615daa7aaf4be6d41c370f3b5e6
Author: Morten Welinder <terra gnome org>
Date:   Wed Aug 4 11:48:43 2010 -0400

    eval: survice strangeness in arrays.

 ChangeLog  |    7 +++++--
 src/expr.c |    5 ++++-
 2 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 0455ae7..cb9495f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2010-08-04  Morten Welinder  <terra gnome org>
 
+	* src/expr.c (gnm_expr_eval): Catch when the alleged array corner
+	isn't a corner.  See bug 626034.
+
 	* src/cell.c (gnm_cell_set_array_formula): Improve preconditions.
 	(gnm_cell_cleanout): Add precondition.
 
@@ -12,8 +15,8 @@
 
 2010-08-04  Jean Brefort  <jean brefort normalesup org>
 
-	* src/dependent.c (gnm_cell_eval_content): force columns span recalculation
-	when switching between number and error. [#625994]
+	* src/dependent.c (gnm_cell_eval_content): force columns span
+	recalculation when switching between number and error. [#625994]
 
 2010-08-03  Andreas J. Guelzow <aguelzow pyrshep ca>
 
diff --git a/src/expr.c b/src/expr.c
index 08cb4de..03e7166 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -1494,8 +1494,11 @@ gnm_expr_eval (GnmExpr const *expr, GnmEvalPos const *pos,
 		/* The upper left corner manages the recalc of the expr */
 		GnmCell *corner = array_elem_get_corner (&expr->array_elem,
 			pos->sheet, &pos->eval);
-		if (corner == NULL)
+		if (!corner ||
+		    !gnm_expr_top_is_array_corner (corner->base.texpr)) {
+			g_warning ("Funky array setup.");
 			return handle_empty (NULL, flags);
+		}
 
 		gnm_cell_eval (corner);
 		a = corner->base.texpr->expr->array_corner.value;



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