diff --git a/src/sp-root.cpp b/src/sp-root.cpp
index 3773efa8333c010e011e75e7653457c20db5f89e..c555c78a00bce3c97f12f468225fcad3730b8d93 100644 (file)
--- a/src/sp-root.cpp
+++ b/src/sp-root.cpp
@@ -353,9 +353,9 @@ sp_root_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML:
(* ((SPObjectClass *) (parent_class))->child_added)(object, child, ref);
SPObject *co = object->document->getObjectByRepr(child);
- g_assert(co != NULL);
+ g_assert (co != NULL || !strcmp("comment", child->name())); // comment repr node has no object
- if (SP_IS_DEFS(co)) {
+ if (co && SP_IS_DEFS(co)) {
SPObject *c;
/* We search for first <defs> node - it is not beautiful, but works */
for (c = sp_object_first_child(SP_OBJECT(group)) ; c != NULL; c = SP_OBJECT_NEXT(c) ) {
}
if (!iter) {
/* we should probably create a new <defs> here? */
- g_critical("Last <defs> removed");
root->defs = NULL;
}
}
SPRoot *root = SP_ROOT(object);
if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) {
- repr = sp_repr_new("svg:svg");
+ Inkscape::XML::Document *xml_doc = sp_document_repr_doc(SP_OBJECT_DOCUMENT(object));
+ repr = xml_doc->createElement("svg:svg");
}
if (flags & SP_OBJECT_WRITE_EXT) {