Code

Check for null pointer
authorjoncruz <joncruz@users.sourceforge.net>
Sun, 2 Apr 2006 04:41:33 +0000 (04:41 +0000)
committerjoncruz <joncruz@users.sourceforge.net>
Sun, 2 Apr 2006 04:41:33 +0000 (04:41 +0000)
ChangeLog
src/ui/widget/selected-style.cpp

index 720da5f04f2ff49e99f649e769a51093ae3faddd..b8ceddef996b38083959d792b167f89d1310d930 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-04-01  Jon A. Cruz  <jon@joncruz.org>
+
+       * src/ui/widget/selected-style.cpp:
+
+         Safety check for null pointer.
+       
 2006-04-01  Jon A. Cruz  <jon@joncruz.org>
 
        * configure.ac, src/interface.cpp, src/dialogs/swatches.cpp:
index 066d721752d2f5ccc82957642fe75a88521b6a5b..f5b1fa08fd47970af6f6faae26f6e8571aa01d41 100644 (file)
@@ -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) {