diff options
| author | Marc Jeanmougin <marc@jeanmougin.fr> | 2015-11-19 21:15:59 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marcjeanmougin@free.fr> | 2015-11-19 21:15:59 +0000 |
| commit | f4ed6e3898b0e21cf131533bb9b4511ce82de86a (patch) | |
| tree | 9364ace3c90a18cdf930e1e07f3b8977969729c2 /src/uri-references.cpp | |
| parent | Translations. Turkish translation update. (diff) | |
| download | inkscape-f4ed6e3898b0e21cf131533bb9b4511ce82de86a.tar.gz inkscape-f4ed6e3898b0e21cf131533bb9b4511ce82de86a.zip | |
fix for bug 1517740 (crash in some cases in selection sets)
Fixed bugs:
- https://launchpad.net/bugs/1517740
(bzr r14478)
Diffstat (limited to 'src/uri-references.cpp')
| -rw-r--r-- | src/uri-references.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/uri-references.cpp b/src/uri-references.cpp index b6ccdbf5f..db46a156f 100644 --- a/src/uri-references.cpp +++ b/src/uri-references.cpp @@ -19,7 +19,7 @@ #include "uri.h" #include "uri-references.h" #include "extract-uri.h" - +#include "sp-tag-use.h" #include <glibmm/miscutils.h> #include <sigc++/functors/mem_fun.h> @@ -84,7 +84,14 @@ bool URIReference::_acceptObject(SPObject *obj) const positions.push_back(position); owner = owner->parent; } - owner = ((SPUse *)owner)->get_original(); + if (dynamic_cast<SPUse *>(owner)) + owner = ((SPUse *)owner)->get_original(); + else if (dynamic_cast<SPTagUse *>(owner)) + owner = ((SPTagUse *)owner)->get_original(); + else { + g_warning("cloned object with no known type\n"); + return false; + } for (int i = positions.size() - 2; i >= 0; i--) owner = owner->childList(false)[positions[i]]; } |
