summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2010-11-25 21:09:47 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2010-11-25 21:09:47 +0000
commit94eb3cf6fd5af295682aaeb6556a87c7ae73dbe7 (patch)
tree42ab9c50794bdb2d07affdc48e9061b00c2bfea6 /src
parentFix crash when shift-clicking the top rectangle rounding handle. (diff)
parentFix Bug #675309 - crash when unlinking an orphaned clone (diff)
downloadinkscape-94eb3cf6fd5af295682aaeb6556a87c7ae73dbe7.tar.gz
inkscape-94eb3cf6fd5af295682aaeb6556a87c7ae73dbe7.zip
Fix crash when unlinking orphaned clones. Patch from Adonis Papaderos.
Fixed bugs: - https://launchpad.net/bugs/675309 (bzr r9922)
Diffstat (limited to 'src')
-rw-r--r--src/selection-chemistry.cpp5
-rw-r--r--src/sp-use.cpp2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp
index 61db7f961..6786479d6 100644
--- a/src/selection-chemistry.cpp
+++ b/src/selection-chemistry.cpp
@@ -2150,6 +2150,11 @@ sp_selection_unlink(SPDesktop *desktop)
SPItem *unlink;
if (SP_IS_USE(item)) {
unlink = sp_use_unlink(SP_USE(item));
+ // Unable to unlink use (external or invalid href?)
+ if (!unlink) {
+ new_select = g_slist_prepend(new_select, item);
+ continue;
+ }
} else /*if (SP_IS_TREF(use))*/ {
unlink = SP_ITEM(sp_tref_convert_to_tspan(item));
}
diff --git a/src/sp-use.cpp b/src/sp-use.cpp
index 9cd38e4b3..ecb7eb788 100644
--- a/src/sp-use.cpp
+++ b/src/sp-use.cpp
@@ -678,7 +678,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);
+ if (!orig) return NULL ;
// Calculate the accumulated transform, starting from the original.
Geom::Matrix t = sp_use_get_root_transform(use);