summaryrefslogtreecommitdiffstats
path: root/src/uri-references.cpp
diff options
context:
space:
mode:
authorsu_v <suv-sf@users.sourceforge.net>2015-12-07 10:00:35 +0000
committer~suv <suv-sf@users.sourceforge.net>2015-12-07 10:00:35 +0000
commit457c41675d69c7463c3590ad9b8e43bcae20e611 (patch)
tree43d1f8d4e350a3070944bbd7bb4ad265c1b6ed02 /src/uri-references.cpp
parentmerge from trunk (r14473) (diff)
parentRemove leftover assert. (diff)
downloadinkscape-457c41675d69c7463c3590ad9b8e43bcae20e611.tar.gz
inkscape-457c41675d69c7463c3590ad9b8e43bcae20e611.zip
merge from trunk (r14506)
(bzr r14425.1.4)
Diffstat (limited to 'src/uri-references.cpp')
-rw-r--r--src/uri-references.cpp11
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]];
}