summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/object-snapper.cpp2
-rw-r--r--src/sp-use.cpp7
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) {