Xcos MVC: fix a memleak when cloning a diagram containing a superblock 31/18531/1
Paul Bignier [Thu, 1 Sep 2016 08:04:26 +0000 (10:04 +0200)]
Change-Id: I706d4407840d60c5a86a2b7f3e776132ad63c8fb

scilab/modules/scicos/src/cpp/view_scilab/DiagramAdapter.cpp
scilab/modules/scicos/tests/unit_tests/model/Clone_SuperBlock_in_Diagram.dia.ref

index b65cdb7..48a6661 100644 (file)
@@ -126,7 +126,35 @@ struct objs
                         property<BlockAdapter>::props_t_it found = std::lower_bound(property<BlockAdapter>::fields.begin(), property<BlockAdapter>::fields.end(), Model);
                         if (found != property<BlockAdapter>::fields.end())
                         {
-                            found->get(*block, controller);
+                            types::InternalType* subDiagram = found->get(*block, controller);
+
+                            // Now remove the references that this getter provoked, on the sub-diagram as well as in its sub-objects
+                            types::List* subList = block->getListObjects();
+                            for (int i = 0; i < subList->getSize(); ++i)
+                            {
+                                const Adapters::adapters_index_t adapter_index = Adapters::instance().lookup_by_typename(subList->get(i)->getShortTypeStr());
+                                switch (adapter_index)
+                                {
+                                    case Adapters::BLOCK_ADAPTER :
+                                    {
+                                        BlockAdapter* subBlock = subList->get(i)->getAs<BlockAdapter>();
+                                        const_cast<Controller&>(controller).deleteObject(subBlock->getAdaptee()->id());
+                                        break;
+                                    }
+                                    case Adapters::LINK_ADAPTER :
+                                    {
+                                        LinkAdapter* subLink = subList->get(i)->getAs<LinkAdapter>();
+                                        const_cast<Controller&>(controller).deleteObject(subLink->getAdaptee()->id());
+                                        break;
+                                    }
+                                    default : // TEXT_ADAPTER
+                                    {
+                                        TextAdapter* subText = subList->get(i)->getAs<TextAdapter>();
+                                        const_cast<Controller&>(controller).deleteObject(subText->getAdaptee()->id());
+                                    }
+                                }
+                            }
+                            subDiagram->killMe();
                         }
                     }
                     ret->append(block);
index 8968695..e46b26f 100644 (file)
@@ -1636,6 +1636,25 @@ Xcos debug: objectReferenced( 70 , LINK ) : 2
 Xcos trace: propertyUpdated( 71 , DIAGRAM , CONTEXT ) : NO_CHANGES
 Xcos debug: objectReferenced( 57 , BLOCK ) : 1
 Xcos debug: objectUnreferenced( 57 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 1
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 1
+Xcos debug: objectUnreferenced( 64 , LINK ) : 1
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 1
+Xcos debug: objectUnreferenced( 69 , LINK ) : 1
+Xcos debug: objectUnreferenced( 70 , LINK ) : 1
+Xcos trace: propertyUpdated( 59 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace: propertyUpdated( 61 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace: propertyUpdated( 64 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace: propertyUpdated( 65 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace: propertyUpdated( 69 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos trace: propertyUpdated( 70 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 64 , LINK ) : 0
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 69 , LINK ) : 0
+Xcos debug: objectUnreferenced( 70 , LINK ) : 0
+Xcos debug: objectDeleted( 71 , DIAGRAM )
 Xcos trace: propertyUpdated( 56 , DIAGRAM , CHILDREN ) : NO_CHANGES
 Xcos debug: objectReferenced( 56 , DIAGRAM ) : 1
 Xcos debug: objectUnreferenced( 56 , DIAGRAM ) : 0
@@ -1648,142 +1667,142 @@ Xcos trace: propertyUpdated( 56 , DIAGRAM , CONTEXT ) : NO_CHANGES
 Xcos debug: objectUnreferenced( 56 , DIAGRAM ) : 0
 assert_checkequal(dClone.objs(1).model.rpar.objs(3).from, [2 1 0]);
 Xcos debug: objectReferenced( 57 , BLOCK ) : 1
-Xcos debug: objectReferenced( 59 , BLOCK ) : 3
-Xcos debug: objectReferenced( 59 , BLOCK ) : 4
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 3
-Xcos debug: objectReferenced( 61 , BLOCK ) : 3
-Xcos debug: objectReferenced( 61 , BLOCK ) : 4
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 3
-Xcos debug: objectReferenced( 64 , LINK ) : 3
-Xcos debug: objectReferenced( 65 , BLOCK ) : 3
-Xcos debug: objectReferenced( 65 , BLOCK ) : 4
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 3
-Xcos debug: objectReferenced( 69 , LINK ) : 3
-Xcos debug: objectReferenced( 70 , LINK ) : 3
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 64 , LINK ) : 2
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 69 , LINK ) : 2
-Xcos debug: objectUnreferenced( 70 , LINK ) : 2
+Xcos debug: objectReferenced( 59 , BLOCK ) : 1
+Xcos debug: objectReferenced( 59 , BLOCK ) : 2
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 1
+Xcos debug: objectReferenced( 61 , BLOCK ) : 1
+Xcos debug: objectReferenced( 61 , BLOCK ) : 2
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 1
+Xcos debug: objectReferenced( 64 , LINK ) : 1
+Xcos debug: objectReferenced( 65 , BLOCK ) : 1
+Xcos debug: objectReferenced( 65 , BLOCK ) : 2
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 1
+Xcos debug: objectReferenced( 69 , LINK ) : 1
+Xcos debug: objectReferenced( 70 , LINK ) : 1
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 64 , LINK ) : 0
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 69 , LINK ) : 0
+Xcos debug: objectUnreferenced( 70 , LINK ) : 0
 Xcos debug: objectCreated( 72 , DIAGRAM )
 Xcos trace: propertyUpdated( 72 , DIAGRAM , CHILDREN ) : SUCCESS
 Xcos trace: propertyUpdated( 59 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 59 , BLOCK ) : 3
+Xcos debug: objectReferenced( 59 , BLOCK ) : 1
 Xcos trace: propertyUpdated( 61 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 61 , BLOCK ) : 3
+Xcos debug: objectReferenced( 61 , BLOCK ) : 1
 Xcos trace: propertyUpdated( 64 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 64 , LINK ) : 3
+Xcos debug: objectReferenced( 64 , LINK ) : 1
 Xcos trace: propertyUpdated( 65 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 65 , BLOCK ) : 3
+Xcos debug: objectReferenced( 65 , BLOCK ) : 1
 Xcos trace: propertyUpdated( 69 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 69 , LINK ) : 3
+Xcos debug: objectReferenced( 69 , LINK ) : 1
 Xcos trace: propertyUpdated( 70 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 70 , LINK ) : 3
+Xcos debug: objectReferenced( 70 , LINK ) : 1
 Xcos trace: propertyUpdated( 72 , DIAGRAM , CONTEXT ) : NO_CHANGES
 Xcos debug: objectReferenced( 57 , BLOCK ) : 2
 Xcos debug: objectUnreferenced( 57 , BLOCK ) : 1
 Xcos debug: objectUnreferenced( 57 , BLOCK ) : 0
-Xcos debug: objectReferenced( 59 , BLOCK ) : 4
-Xcos debug: objectReferenced( 59 , BLOCK ) : 5
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 4
-Xcos debug: objectReferenced( 61 , BLOCK ) : 4
-Xcos debug: objectReferenced( 61 , BLOCK ) : 5
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 4
-Xcos debug: objectReferenced( 64 , LINK ) : 4
-Xcos debug: objectReferenced( 65 , BLOCK ) : 4
-Xcos debug: objectReferenced( 65 , BLOCK ) : 5
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 4
-Xcos debug: objectReferenced( 69 , LINK ) : 4
-Xcos debug: objectReferenced( 70 , LINK ) : 4
+Xcos debug: objectReferenced( 59 , BLOCK ) : 2
+Xcos debug: objectReferenced( 59 , BLOCK ) : 3
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 2
+Xcos debug: objectReferenced( 61 , BLOCK ) : 2
+Xcos debug: objectReferenced( 61 , BLOCK ) : 3
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 2
+Xcos debug: objectReferenced( 64 , LINK ) : 2
+Xcos debug: objectReferenced( 65 , BLOCK ) : 2
+Xcos debug: objectReferenced( 65 , BLOCK ) : 3
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 2
+Xcos debug: objectReferenced( 69 , LINK ) : 2
+Xcos debug: objectReferenced( 70 , LINK ) : 2
 Xcos trace: propertyUpdated( 59 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace: propertyUpdated( 61 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace: propertyUpdated( 64 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace: propertyUpdated( 65 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace: propertyUpdated( 69 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace: propertyUpdated( 70 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 3
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 3
-Xcos debug: objectUnreferenced( 64 , LINK ) : 3
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 3
-Xcos debug: objectUnreferenced( 69 , LINK ) : 3
-Xcos debug: objectUnreferenced( 70 , LINK ) : 3
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 1
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 1
+Xcos debug: objectUnreferenced( 64 , LINK ) : 1
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 1
+Xcos debug: objectUnreferenced( 69 , LINK ) : 1
+Xcos debug: objectUnreferenced( 70 , LINK ) : 1
 Xcos debug: objectDeleted( 72 , DIAGRAM )
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 69 , LINK ) : 2
-Xcos debug: objectUnreferenced( 70 , LINK ) : 2
-Xcos debug: objectUnreferenced( 64 , LINK ) : 2
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 69 , LINK ) : 0
+Xcos debug: objectUnreferenced( 70 , LINK ) : 0
+Xcos debug: objectUnreferenced( 64 , LINK ) : 0
 assert_checkequal(dClone.objs(1).model.rpar.objs(3).to,   [4 1 1]);
 Xcos debug: objectReferenced( 57 , BLOCK ) : 1
-Xcos debug: objectReferenced( 59 , BLOCK ) : 3
-Xcos debug: objectReferenced( 59 , BLOCK ) : 4
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 3
-Xcos debug: objectReferenced( 61 , BLOCK ) : 3
-Xcos debug: objectReferenced( 61 , BLOCK ) : 4
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 3
-Xcos debug: objectReferenced( 64 , LINK ) : 3
-Xcos debug: objectReferenced( 65 , BLOCK ) : 3
-Xcos debug: objectReferenced( 65 , BLOCK ) : 4
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 3
-Xcos debug: objectReferenced( 69 , LINK ) : 3
-Xcos debug: objectReferenced( 70 , LINK ) : 3
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 64 , LINK ) : 2
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 69 , LINK ) : 2
-Xcos debug: objectUnreferenced( 70 , LINK ) : 2
+Xcos debug: objectReferenced( 59 , BLOCK ) : 1
+Xcos debug: objectReferenced( 59 , BLOCK ) : 2
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 1
+Xcos debug: objectReferenced( 61 , BLOCK ) : 1
+Xcos debug: objectReferenced( 61 , BLOCK ) : 2
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 1
+Xcos debug: objectReferenced( 64 , LINK ) : 1
+Xcos debug: objectReferenced( 65 , BLOCK ) : 1
+Xcos debug: objectReferenced( 65 , BLOCK ) : 2
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 1
+Xcos debug: objectReferenced( 69 , LINK ) : 1
+Xcos debug: objectReferenced( 70 , LINK ) : 1
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 64 , LINK ) : 0
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 69 , LINK ) : 0
+Xcos debug: objectUnreferenced( 70 , LINK ) : 0
 Xcos debug: objectCreated( 73 , DIAGRAM )
 Xcos trace: propertyUpdated( 73 , DIAGRAM , CHILDREN ) : SUCCESS
 Xcos trace: propertyUpdated( 59 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 59 , BLOCK ) : 3
+Xcos debug: objectReferenced( 59 , BLOCK ) : 1
 Xcos trace: propertyUpdated( 61 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 61 , BLOCK ) : 3
+Xcos debug: objectReferenced( 61 , BLOCK ) : 1
 Xcos trace: propertyUpdated( 64 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 64 , LINK ) : 3
+Xcos debug: objectReferenced( 64 , LINK ) : 1
 Xcos trace: propertyUpdated( 65 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 65 , BLOCK ) : 3
+Xcos debug: objectReferenced( 65 , BLOCK ) : 1
 Xcos trace: propertyUpdated( 69 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 69 , LINK ) : 3
+Xcos debug: objectReferenced( 69 , LINK ) : 1
 Xcos trace: propertyUpdated( 70 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectReferenced( 70 , LINK ) : 3
+Xcos debug: objectReferenced( 70 , LINK ) : 1
 Xcos trace: propertyUpdated( 73 , DIAGRAM , CONTEXT ) : NO_CHANGES
 Xcos debug: objectReferenced( 57 , BLOCK ) : 2
 Xcos debug: objectUnreferenced( 57 , BLOCK ) : 1
 Xcos debug: objectUnreferenced( 57 , BLOCK ) : 0
-Xcos debug: objectReferenced( 59 , BLOCK ) : 4
-Xcos debug: objectReferenced( 59 , BLOCK ) : 5
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 4
-Xcos debug: objectReferenced( 61 , BLOCK ) : 4
-Xcos debug: objectReferenced( 61 , BLOCK ) : 5
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 4
-Xcos debug: objectReferenced( 64 , LINK ) : 4
-Xcos debug: objectReferenced( 65 , BLOCK ) : 4
-Xcos debug: objectReferenced( 65 , BLOCK ) : 5
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 4
-Xcos debug: objectReferenced( 69 , LINK ) : 4
-Xcos debug: objectReferenced( 70 , LINK ) : 4
+Xcos debug: objectReferenced( 59 , BLOCK ) : 2
+Xcos debug: objectReferenced( 59 , BLOCK ) : 3
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 2
+Xcos debug: objectReferenced( 61 , BLOCK ) : 2
+Xcos debug: objectReferenced( 61 , BLOCK ) : 3
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 2
+Xcos debug: objectReferenced( 64 , LINK ) : 2
+Xcos debug: objectReferenced( 65 , BLOCK ) : 2
+Xcos debug: objectReferenced( 65 , BLOCK ) : 3
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 2
+Xcos debug: objectReferenced( 69 , LINK ) : 2
+Xcos debug: objectReferenced( 70 , LINK ) : 2
 Xcos trace: propertyUpdated( 59 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace: propertyUpdated( 61 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace: propertyUpdated( 64 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace: propertyUpdated( 65 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace: propertyUpdated( 69 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace: propertyUpdated( 70 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 3
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 3
-Xcos debug: objectUnreferenced( 64 , LINK ) : 3
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 3
-Xcos debug: objectUnreferenced( 69 , LINK ) : 3
-Xcos debug: objectUnreferenced( 70 , LINK ) : 3
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 1
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 1
+Xcos debug: objectUnreferenced( 64 , LINK ) : 1
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 1
+Xcos debug: objectUnreferenced( 69 , LINK ) : 1
+Xcos debug: objectUnreferenced( 70 , LINK ) : 1
 Xcos debug: objectDeleted( 73 , DIAGRAM )
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 2
-Xcos debug: objectUnreferenced( 69 , LINK ) : 2
-Xcos debug: objectUnreferenced( 70 , LINK ) : 2
-Xcos debug: objectUnreferenced( 64 , LINK ) : 2
+Xcos debug: objectUnreferenced( 59 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 61 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 65 , BLOCK ) : 0
+Xcos debug: objectUnreferenced( 69 , LINK ) : 0
+Xcos debug: objectUnreferenced( 70 , LINK ) : 0
+Xcos debug: objectUnreferenced( 64 , LINK ) : 0
 // Check that all the model items are freed
 clear
 Xcos debug: objectUnreferenced( 41 , BLOCK ) : 0
@@ -1855,12 +1874,48 @@ Xcos trace: propertyUpdated( 64 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos trace: propertyUpdated( 65 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos trace: propertyUpdated( 69 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos trace: propertyUpdated( 70 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos debug: objectUnreferenced( 59 , BLOCK ) : 1
-Xcos debug: objectUnreferenced( 61 , BLOCK ) : 1
-Xcos debug: objectUnreferenced( 64 , LINK ) : 1
-Xcos debug: objectUnreferenced( 65 , BLOCK ) : 1
-Xcos debug: objectUnreferenced( 69 , LINK ) : 1
-Xcos debug: objectUnreferenced( 70 , LINK ) : 1
+Xcos trace: propertyUpdated( 59 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 59 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 59 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace: propertyUpdated( 59 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 69 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos debug: objectDeleted( 60 , PORT )
+Xcos debug: objectDeleted( 59 , BLOCK )
+Xcos trace: propertyUpdated( 61 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 61 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 61 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace: propertyUpdated( 61 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 70 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos debug: objectDeleted( 62 , PORT )
+Xcos trace: propertyUpdated( 61 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 61 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 61 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 61 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos trace: propertyUpdated( 64 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug: objectDeleted( 63 , PORT )
+Xcos debug: objectDeleted( 61 , BLOCK )
+Xcos trace: propertyUpdated( 66 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug: objectDeleted( 64 , LINK )
+Xcos trace: propertyUpdated( 65 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 65 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 65 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace: propertyUpdated( 65 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug: objectDeleted( 66 , PORT )
+Xcos trace: propertyUpdated( 65 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 65 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 65 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 65 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos trace: propertyUpdated( 69 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug: objectDeleted( 67 , PORT )
+Xcos trace: propertyUpdated( 65 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 65 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 65 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace: propertyUpdated( 65 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos trace: propertyUpdated( 70 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos debug: objectDeleted( 68 , PORT )
+Xcos debug: objectDeleted( 65 , BLOCK )
+Xcos debug: objectDeleted( 69 , LINK )
+Xcos debug: objectDeleted( 70 , LINK )
 Xcos debug: objectDeleted( 57 , BLOCK )
 Xcos debug: objectDeleted( 56 , DIAGRAM )
 Xcos trace: propertyUpdated( 11 , BLOCK , INPUTS ) : NO_CHANGES