[gnumeric] diff engine: fix problem with adding/removing names.



commit 239f2adfea31dfbd135d7ed1904fa9d4744f6c83
Author: Morten Welinder <terra gnome org>
Date:   Sun Apr 8 16:21:16 2018 -0400

    diff engine: fix problem with adding/removing names.

 src/sheet-diff.c |    4 ++--
 src/ssdiff.c     |    3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/src/sheet-diff.c b/src/sheet-diff.c
index e1ad03b..bcb5bdb 100644
--- a/src/sheet-diff.c
+++ b/src/sheet-diff.c
@@ -330,7 +330,7 @@ diff_names (GnmDiffIState *istate,
                if (!nn || (on && cb_expr_name_by_name (on, nn) < 0)) {
                        // Old name got removed
                        istate->diff_found = TRUE;
-                       DISPATCH(name_changed) (istate->user, on, nn);
+                       DISPATCH(name_changed) (istate->user, on, NULL);
                        lo = lo->next;
                        continue;
                }
@@ -338,7 +338,7 @@ diff_names (GnmDiffIState *istate,
                if (!on || (nn && cb_expr_name_by_name (on, nn) > 0)) {
                        // New name got added
                        istate->diff_found = TRUE;
-                       DISPATCH(name_changed) (istate->user, on, nn);
+                       DISPATCH(name_changed) (istate->user, NULL, nn);
                        ln = ln->next;
                        continue;
                }
diff --git a/src/ssdiff.c b/src/ssdiff.c
index 7e4e926..41c8a65 100644
--- a/src/ssdiff.c
+++ b/src/ssdiff.c
@@ -895,7 +895,8 @@ diff (char const *oldfilename, char const *newfilename,
 out:
        clear_file_state (&state.old);
        clear_file_state (&state.new);
-       actions->dtor (&state);
+       if (actions->dtor)
+               actions->dtor (&state);
 
        gnm_pop_C_locale (locale);
 


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