Code

change uint to more portable unsigned int
[inkscape.git] / src / document.cpp
index f69c480f75e4a3f108cfdc9ce792283d166a3d4f..b53a7b7fad6f9fb1d54354ba028e77e9f0fc77f7 100644 (file)
@@ -50,6 +50,7 @@
 #include "dir-util.h"
 #include "unit-constants.h"
 #include "prefs-utils.h"
+#include "libavoid/router.h"
 
 #include "display/nr-arena-item.h"
 
@@ -86,6 +87,9 @@ SPDocument::SPDocument() {
 
     _collection_queue = NULL;
 
+    // Initialise instance of connector router.
+    router = new Avoid::Router();
+
     p = new SPDocumentPrivate();
 
     p->iddef = g_hash_table_new(g_direct_hash, g_direct_equal);
@@ -164,6 +168,11 @@ SPDocument::~SPDocument() {
         keepalive = FALSE;
     }
 
+    if (router) {
+        delete router;
+        router = NULL;
+    }
+
     //delete this->_whiteboard_session_manager;
 }
 
@@ -986,6 +995,9 @@ sp_document_remove_resource(SPDocument *document, gchar const *key, SPObject *ob
     g_return_val_if_fail(object != NULL, FALSE);
     g_return_val_if_fail(SP_IS_OBJECT(object), FALSE);
 
+    if (SP_OBJECT_IS_CLONED(object))
+        return FALSE;
+
     rlist = (GSList*)g_hash_table_lookup(document->priv->resources, key);
     g_return_val_if_fail(rlist != NULL, FALSE);
     g_return_val_if_fail(g_slist_find(rlist, object), FALSE);