[gnumeric] Fix another case of using a NULL sheet for size. #580953.



commit aa3661e383500ac238acd6debc24f176822e97f5
Author: Morten Welinder <terra gnome org>
Date:   Thu Apr 30 20:41:30 2009 -0400

    Fix another case of using a NULL sheet for size.  #580953.
---
 ChangeLog      |    4 ++++
 src/position.c |   10 ++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f492823..34f67ef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-04-30  Morten Welinder  <terra gnome org>
 
+	* src/position.c (gnm_cellref_get_row, gnm_cellref_get_col): Get
+	sheet size from eval-pos, if the ref doesn't have one.  Fixes
+	#580953.
+
 	* src/wbc-gtk.c (set_entry_contents): New function for common
 	code.
 	(cb_dataset_changed, wbcg_data_allocator_editor): Use
diff --git a/src/position.c b/src/position.c
index 5006722..de3db30 100644
--- a/src/position.c
+++ b/src/position.c
@@ -266,9 +266,10 @@ gnm_cellref_get_col (GnmCellRef const *ref, GnmEvalPos const *ep)
 	g_return_val_if_fail (ep != NULL, 0);
 
 	if (ref->col_relative) {
-		int res = (ep->eval.col + ref->col) % gnm_sheet_get_max_cols (ref->sheet);
+		Sheet const *sheet = eval_sheet (ref->sheet, ep->sheet);
+		int res = (ep->eval.col + ref->col) % gnm_sheet_get_max_cols (sheet);
 		if (res < 0)
-			return res + gnm_sheet_get_max_cols (ref->sheet);
+			return res + gnm_sheet_get_max_cols (sheet);
 		return res;
 	}
 	return ref->col;
@@ -281,9 +282,10 @@ gnm_cellref_get_row (GnmCellRef const *ref, GnmEvalPos const *ep)
 	g_return_val_if_fail (ep != NULL, 0);
 
 	if (ref->row_relative) {
-		int res = (ep->eval.row + ref->row) % gnm_sheet_get_max_rows (ref->sheet);
+		Sheet const *sheet = eval_sheet (ref->sheet, ep->sheet);
+		int res = (ep->eval.row + ref->row) % gnm_sheet_get_max_rows (sheet);
 		if (res < 0)
-			return res + gnm_sheet_get_max_rows (ref->sheet);
+			return res + gnm_sheet_get_max_rows (sheet);
 		return res;
 	}
 	return ref->row;



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