From 9f4c77cb139a797efd208a1dd78e010458786330 Mon Sep 17 00:00:00 2001 From: joncruz Date: Sun, 2 Apr 2006 04:41:33 +0000 Subject: [PATCH] Check for null pointer --- ChangeLog | 6 +++++ src/ui/widget/selected-style.cpp | 39 +++++++++++++++++--------------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 720da5f04..b8ceddef9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-04-01 Jon A. Cruz + + * src/ui/widget/selected-style.cpp: + + Safety check for null pointer. + 2006-04-01 Jon A. Cruz * configure.ac, src/interface.cpp, src/dialogs/swatches.cpp: diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp index 066d72175..f5b1fa08f 100644 --- a/src/ui/widget/selected-style.cpp +++ b/src/ui/widget/selected-style.cpp @@ -887,24 +887,27 @@ SelectedStyle::update() } else if (paint->set && paint->type == SP_PAINT_TYPE_PAINTSERVER) { SPPaintServer *server = (i == SS_FILL)? SP_STYLE_FILL_SERVER (query) : SP_STYLE_STROKE_SERVER (query); - - Inkscape::XML::Node *srepr = SP_OBJECT_REPR(server); - _paintserver_id[i] += "url(#"; - _paintserver_id[i] += srepr->attribute("id"); - _paintserver_id[i] += ")"; - - if (SP_IS_LINEARGRADIENT (server)) { - place->add(_lgradient[i]); - _tooltips.set_tip(*place, __lgradient[i]); - _mode[i] = SS_LGRADIENT; - } else if (SP_IS_RADIALGRADIENT (server)) { - place->add(_rgradient[i]); - _tooltips.set_tip(*place, __rgradient[i]); - _mode[i] = SS_RGRADIENT; - } else if (SP_IS_PATTERN (server)) { - place->add(_pattern[i]); - _tooltips.set_tip(*place, __pattern[i]); - _mode[i] = SS_PATTERN; + if ( server ) { + Inkscape::XML::Node *srepr = SP_OBJECT_REPR(server); + _paintserver_id[i] += "url(#"; + _paintserver_id[i] += srepr->attribute("id"); + _paintserver_id[i] += ")"; + + if (SP_IS_LINEARGRADIENT (server)) { + place->add(_lgradient[i]); + _tooltips.set_tip(*place, __lgradient[i]); + _mode[i] = SS_LGRADIENT; + } else if (SP_IS_RADIALGRADIENT (server)) { + place->add(_rgradient[i]); + _tooltips.set_tip(*place, __rgradient[i]); + _mode[i] = SS_RGRADIENT; + } else if (SP_IS_PATTERN (server)) { + place->add(_pattern[i]); + _tooltips.set_tip(*place, __pattern[i]); + _mode[i] = SS_PATTERN; + } + } else { + g_warning ("file %s: line %d: Unknown paint server", __FILE__, __LINE__); } } else if (paint->set && paint->type == SP_PAINT_TYPE_NONE) { -- 2.30.2