[gnumeric] Fix error bars when data are in a multi-column array. [#594]
- From: Jean Bréfort <jbrefort src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] Fix error bars when data are in a multi-column array. [#594]
- Date: Sat, 18 Sep 2021 05:17:50 +0000 (UTC)
commit d9cbc8882d15237be96edea63b1dc480223fdc17
Author: Jean Brefort <jean brefort normalesup org>
Date: Sat Sep 18 07:16:46 2021 +0200
Fix error bars when data are in a multi-column array. [#594]
ChangeLog | 5 +++++
NEWS | 3 +++
src/graph.c | 29 +++++------------------------
3 files changed, 13 insertions(+), 24 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index a01bc9ac9..a18c70399 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2021-09-18 Jean Brefort <jean brefort normalesup org>
+
+ * src/graph.c (gnm_go_data_vector_get_value): fix error bars when data
+ are in a multi-column array. [#594]
+
2021-06-10 Morten Welinder <terra gnome org>
* configure.ac: Post-release bump.
diff --git a/NEWS b/NEWS
index 9e2b15cca..2055a4805 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
Gnumeric 1.12.51
+Jean:
+ * Fix error bars when data are in a multi-column array. [#594]
+
--------------------------------------------------------------------------
Gnumeric 1.12.50
diff --git a/src/graph.c b/src/graph.c
index 8528341a8..163058056 100644
--- a/src/graph.c
+++ b/src/graph.c
@@ -854,35 +854,16 @@ static double
gnm_go_data_vector_get_value (GODataVector *dat, unsigned i)
{
GnmGODataVector *vec = (GnmGODataVector *)dat;
- GnmValue *v;
- GnmEvalPos ep;
- gboolean valid = FALSE;
if (vec->val == NULL)
gnm_go_data_vector_load_len (dat);
- if (VALUE_IS_ARRAY (vec->val)) {
- if ((dat->base.flags & GO_DATA_CACHE_IS_VALID) == 0)
- gnm_go_data_vector_load_values (dat);
- return dat->values[i];
- } else {
- eval_pos_init_dep (&ep, &vec->dep);
- v = value_dup (vec->as_col
- ? value_area_get_x_y (vec->val, 0, i, &ep)
- : value_area_get_x_y (vec->val, i, 0, &ep));
- if (NULL == v)
- return go_nan;
-
- v = value_coerce_to_number (v, &valid, &ep);
- if (valid) {
- gnm_float res = value_get_as_float (v);
- value_release (v);
- return res;
- }
- value_release (v);
- }
- return go_nan;
+ if (dat->len <= 0)
+ return go_nan;
+ if ((dat->base.flags & GO_DATA_CACHE_IS_VALID) == 0)
+ gnm_go_data_vector_load_values (dat);
+ return (i < (unsigned) dat->len)? dat->values[i]: go_nan;
}
struct string_closure {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]