summaryrefslogtreecommitdiffstats
path: root/src/uri-references.cpp
diff options
context:
space:
mode:
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]];
}