[gnumeric] xlsx: fix critical.



commit 160557c2383104fb216dedb31e1a2e6b7ea4f00f
Author: Morten Welinder <terra gnome org>
Date:   Fri Mar 21 10:11:25 2014 -0400

    xlsx: fix critical.

 plugins/excel/ChangeLog   |    5 +++++
 plugins/excel/xlsx-read.c |    6 ++++--
 2 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/plugins/excel/ChangeLog b/plugins/excel/ChangeLog
index 824dc26..8a1c5b1 100644
--- a/plugins/excel/ChangeLog
+++ b/plugins/excel/ChangeLog
@@ -1,3 +1,8 @@
+2014-03-21  Morten Welinder  <terra gnome org>
+
+       * xlsx-read.c (xlsx_cond_fmt_formula_end): Don't throw critical if
+       we fail to parse the expression.
+
 2014-03-20  Morten Welinder  <terra gnome org>
 
        * xlsx-write.c (xlsx_write_background): Be careful about fields
diff --git a/plugins/excel/xlsx-read.c b/plugins/excel/xlsx-read.c
index 8d07687..e6cf57c 100644
--- a/plugins/excel/xlsx-read.c
+++ b/plugins/excel/xlsx-read.c
@@ -2654,8 +2654,10 @@ xlsx_cond_fmt_formula_end (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
        cp = g_slist_last (state->cond_regions)->data;
        parse_pos_init (&pp, state->sheet->workbook, state->sheet, cp->col, cp->row);
        texpr = xlsx_parse_expr (xin, xin->content->str, &pp);
-       gnm_style_cond_set_expr (state->cond, texpr, state->count);
-       gnm_expr_top_unref (texpr);
+       if (texpr) {
+               gnm_style_cond_set_expr (state->cond, texpr, state->count);
+               gnm_expr_top_unref (texpr);
+       }
 
        state->count++;
 }


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