From f4ed6e3898b0e21cf131533bb9b4511ce82de86a Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Thu, 19 Nov 2015 22:15:59 +0100 Subject: fix for bug 1517740 (crash in some cases in selection sets) Fixed bugs: - https://launchpad.net/bugs/1517740 (bzr r14478) --- src/uri-references.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/uri-references.cpp') 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 #include @@ -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(owner)) + owner = ((SPUse *)owner)->get_original(); + else if (dynamic_cast(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]]; } -- cgit v1.2.3