From 03cdb70a5b69360600e7c84e49a549697014d5fe Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Date: Sun, 30 Sep 2018 18:52:18 +0200 Subject: Fix for bug #1769679, Crash when opening file with live path effect --- src/live_effects/lpe-ruler.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/live_effects/lpe-ruler.cpp b/src/live_effects/lpe-ruler.cpp index 8d625f88e..c3fc973c2 100644 --- a/src/live_effects/lpe-ruler.cpp +++ b/src/live_effects/lpe-ruler.cpp @@ -77,9 +77,12 @@ LPERuler::ruler_mark(Geom::Point const &A, Geom::Point const &n, MarkType const double real_mark_length = mark_length; SPDocument * document = SP_ACTIVE_DOCUMENT; - SPNamedView *nv = sp_document_namedview(document, nullptr); - Glib::ustring display_unit = nv->display_units->abbr; - real_mark_length = Inkscape::Util::Quantity::convert(real_mark_length, unit.get_abbreviation(), display_unit.c_str()); + SPNamedView *nv = sp_document_namedview(document, NULL); + Glib::ustring display_unit = "mm"; + if (nv && nv->display_units) { + display_unit = nv->display_units->abbr; + real_mark_length = Inkscape::Util::Quantity::convert(real_mark_length, unit.get_abbreviation(), display_unit.c_str()); + } double real_minor_mark_length = minor_mark_length; real_minor_mark_length = Inkscape::Util::Quantity::convert(real_minor_mark_length, unit.get_abbreviation(), display_unit.c_str()); @@ -132,9 +135,12 @@ LPERuler::doEffect_pwd2 (Geom::Piecewise > const & pwd2_i double real_mark_distance = mark_distance; SPDocument * document = SP_ACTIVE_DOCUMENT; - SPNamedView *nv = sp_document_namedview(document, nullptr); - Glib::ustring display_unit = nv->display_units->abbr; - real_mark_distance = Inkscape::Util::Quantity::convert(real_mark_distance, unit.get_abbreviation(), display_unit.c_str()); + SPNamedView *nv = sp_document_namedview(document, NULL); + Glib::ustring display_unit = "mm"; + if (nv && nv->display_units) { + display_unit = nv->display_units->abbr; + real_mark_distance = Inkscape::Util::Quantity::convert(real_mark_distance, unit.get_abbreviation(), display_unit.c_str()); + } double real_offset = offset; real_offset = Inkscape::Util::Quantity::convert(real_offset, unit.get_abbreviation(), display_unit.c_str()); -- cgit v1.2.3