diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/object-snapper.cpp | 2 | ||||
| -rw-r--r-- | src/sp-use.cpp | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp index e320f013f..0308efe2d 100644 --- a/src/object-snapper.cpp +++ b/src/object-snapper.cpp @@ -166,6 +166,7 @@ void Inkscape::ObjectSnapper::_collectNodes(Inkscape::Snapper::PointType const & if (SP_IS_USE(*i)) { root_item = sp_use_root(SP_USE(*i)); } + g_return_if_fail(root_item); //Collect all nodes so we can snap to them if (_snap_to_itemnode) { @@ -271,6 +272,7 @@ void Inkscape::ObjectSnapper::_collectPaths(Inkscape::Snapper::PointType const & if (SP_IS_USE(*i)) { i2doc = sp_use_get_root_transform(SP_USE(*i)); root_item = sp_use_root(SP_USE(*i)); + g_return_if_fail(root_item); } else { i2doc = sp_item_i2doc_affine(*i); root_item = *i; diff --git a/src/sp-use.cpp b/src/sp-use.cpp index dc1774e3d..590103d36 100644 --- a/src/sp-use.cpp +++ b/src/sp-use.cpp @@ -372,7 +372,8 @@ sp_use_hide(SPItem *item, unsigned key) /** * Returns the ultimate original of a SPUse (i.e. the first object in the chain of its originals - * which is not an SPUse). + * which is not an SPUse). If no original is found, NULL is returned (it is the responsibility + * of the caller to make sure that this is handled correctly). * * Note that the returned is the clone object, i.e. the child of an SPUse (of the argument one for * the trivial case) and not the "true original". @@ -384,7 +385,7 @@ sp_use_root(SPUse *use) while (SP_IS_USE(orig)) { orig = SP_USE(orig)->child; } - g_assert(SP_IS_ITEM(orig)); + g_return_val_if_fail(SP_IS_ITEM(orig), NULL); return SP_ITEM(orig); } @@ -663,6 +664,7 @@ sp_use_unlink(SPUse *use) // Track the ultimate source of a chain of uses. SPItem *orig = sp_use_root(use); + g_return_val_if_fail(orig, NULL); // Calculate the accumulated transform, starting from the original. NR::Matrix t = sp_use_get_root_transform(use); @@ -742,6 +744,7 @@ sp_use_snappoints(SPItem const *item, SnapPointsIter p) SPUse *use = SP_USE(item); SPItem *root = sp_use_root(use); + g_return_if_fail(root); SPItemClass const &item_class = *(SPItemClass const *) G_OBJECT_GET_CLASS(root); if (item_class.snappoints) { |
