Xcos: fix memleak on MVC objects after 238f0650 96/20796/7
Clément DAVID [Fri, 1 Feb 2019 17:17:35 +0000 (18:17 +0100)]
Change-Id: I750dde7f03da59b0fdf8e74f3bb4421e577a33d2

24 files changed:
scilab/modules/scicos/sci_gateway/cpp/sci_sig2data.cpp
scilab/modules/scicos/src/cpp/view_scilab/DiagramAdapter.cpp
scilab/modules/scicos/tests/unit_tests/do_eval.dia.ref
scilab/modules/scicos/tests/unit_tests/do_eval.tst
scilab/modules/scicos/tests/unit_tests/do_eval_check_leaks.tst [new file with mode: 0644]
scilab/modules/scicos/tests/unit_tests/model/Clone_SuperBlock_in_Diagram.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Consecutive_init.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Deep_cloning.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Delete_objects.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Diagram.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Diagram_cloning.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Implicit_link.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Insert_in_SuperBlock.dia.ref
scilab/modules/scicos/tests/unit_tests/model/SubDiagram_context.dia.ref
scilab/modules/scicos/tests/unit_tests/model/SuperBlock.dia.ref
scilab/modules/scicos/tests/unit_tests/model/SuperBlock_in_SuperBlock.dia.ref
scilab/modules/scicos/tests/unit_tests/model/clone_extract.dia.ref
scilab/modules/scicos/tests/unit_tests/model/from_mlist.dia.ref
scilab/modules/scicos/tests/unit_tests/model/link_preservation.dia.ref
scilab/modules/scicos/tests/unit_tests/model/simple_delete.dia.ref
scilab/modules/xcos/tests/nonreg_tests/bug_11975.unix.dia.ref
scilab/modules/xcos/tests/nonreg_tests/bug_12384.unix.dia.ref
scilab/modules/xcos/tests/nonreg_tests/bug_12751.unix.dia.ref
scilab/modules/xcos/tests/nonreg_tests/bug_13011.dia.ref

index cee4e35..75c23d6 100644 (file)
@@ -78,9 +78,6 @@ extern "C"
 
 static const std::string funname = "sig2data";
 
-static const std::wstring Values(L"values");
-static const std::wstring Time(L"time");
-
 types::Function::ReturnValue sci_sig2data(types::typed_list &in, int _iRetCount, types::typed_list &out)
 {
     if (in.size() != 1)
@@ -107,26 +104,26 @@ types::Function::ReturnValue sci_sig2data(types::typed_list &in, int _iRetCount,
         Scierror(999, _("%s: Wrong size for input argument #%d : A single struct expected.\n"), funname.data(), 1);
         return types::Function::Error;
     }
-    types::String* fields = B->get(0)->getFieldNames();
-    if (fields->getSize() != 2)
+    auto fields = B->get(0)->getFields();
+    if (fields.size() != 2)
     {
         Scierror(999, _("%s: Wrong fields for input argument #%d : \"%s\" and \"%s\" expected.\n"), funname.data(), 1, "values", "time");
         return types::Function::Error;
     }
-    if (fields->get(0) != Values)
+    if (fields.find(L"values") == fields.end())
     {
         Scierror(999, _("%s: Wrong fields for input argument #%d : \"%s\" and \"%s\" expected.\n"), funname.data(), 1, "values", "time");
         return types::Function::Error;
     }
-    if (fields->get(1) != Time)
+    if (fields.find(L"time") == fields.end())
     {
         Scierror(999, _("%s: Wrong fields for input argument #%d : \"%s\" and \"%s\" expected.\n"), funname.data(), 1, "values", "time");
         return types::Function::Error;
     }
 
     // Values
-    types::InternalType* A = B->get(0)->get(Values);
-    types::InternalType* timeValues = B->get(0)->get(Time);
+    types::InternalType* A = B->get(0)->getData()[B->get(0)->getFieldIndex(L"values")];
+    types::InternalType* timeValues = B->get(0)->getData()[B->get(0)->getFieldIndex(L"time")];
 
     out.push_back(A);
     if (_iRetCount == 2)
index 093c12c..c33f43a 100644 (file)
@@ -206,7 +206,11 @@ struct objs
         {
             std::for_each(childrenToUpdate.begin(), childrenToUpdate.end(), [&controller] (const update_t & u)
             {
-                if (u.adaptee != nullptr)
+                if (u.adapter != nullptr)
+                {
+                    u.adapter->IncreaseRef();
+                }
+                else if (u.adaptee != nullptr)
                 {
                     controller.referenceBaseObject(u.adaptee);
                 }
@@ -217,7 +221,12 @@ struct objs
         {
             std::for_each(childrenToUpdate.begin(), childrenToUpdate.end(), [this] (const update_t & u)
             {
-                if (u.adaptee != nullptr)
+                if (u.adapter != nullptr)
+                {
+                    u.adapter->DecreaseRef();
+                    u.adapter->killMe();
+                }
+                else if (u.adaptee != nullptr)
                 {
                     controller.deleteBaseObject(u.adaptee);
                 }
@@ -283,18 +292,17 @@ struct objs
                     }
 
                     // clone if the adapter is used somewhere else (eg. not owned by the list)
-                    if (pIT->getRef() > 1 || o->refCount() > 0) // over-clone some elements but PASS the tests
-                        //                     if (pIT->getRef() > 1) // TODO: investigate why this expression is not enough
+                    // TODO add a insertionCall depth counter to use there, this will avoid extra copy on o.model.rpar.objs(1) modification
+                    if (!deletion && (pIT->getRef() > 1 || o->refCount() > 0))
                     {
-                        model::BaseObject* cloned = controller.cloneBaseObject(mapped, o, true, true);
-                        types::InternalType* clonedAdapter = Adapters::instance().allocate_view(controller, cloned);
+                        model::BaseObject *cloned = controller.cloneBaseObject(mapped, o, true, true);
+                        types::InternalType *clonedAdapter = Adapters::instance().allocate_view(controller, cloned);
 
                         childrenToUpdate.emplace_back(i, cloned, clonedAdapter);
                         break;
                     }
 
                     // o have been edited in place, refresh partial information
-                    pIT->IncreaseRef();
                     childrenToUpdate.emplace_back(i, o, pIT);
                     break;
                 }
@@ -350,20 +358,22 @@ struct objs
             }
             else
             {
-                controller.referenceBaseObject(update.adaptee);
                 if (deletion && children[update.index] == ScicosID())
                 {
                     // This object is the one being deleted in the diagram:
                     //  - we are in effective delete mode
-                    //  - the old object is a "Deleted" mlist (deletion in two steps)
-                    //  - the new object is not a "Deleted" mlist (just replacing the old one)
+                    //  - the old object is a "Deleted" mlist (deletion in two  steps)
+                    //  - the new object is not a "Deleted" mlist (just replacing  the old one)
                     // Then 'offset' will skip the mlist so all the old children are deleted
                     ++offset;
                 }
 
-                LinkAdapter::store_partial_links_information(controller, update.adaptee, update.index + offset, children);
-                GraphicsAdapter::store_partial_links_information(controller, update.adaptee, update.index + offset, children);
-                controller.deleteObject(children[update.index + offset]);
+                ScicosID deleted = children[update.index + offset];
+                if (deleted)
+                {
+                    LinkAdapter::store_partial_links_information(controller, update.adaptee, update.index + offset, children);
+                    GraphicsAdapter::store_partial_links_information(controller, update.adaptee, update.index + offset, children);
+                }
             }
 
             // manage insertion and field update
@@ -373,6 +383,11 @@ struct objs
             }
             else
             {
+                controller.referenceBaseObject(update.adaptee);
+                if (children[update.index] != ScicosID())
+                {
+                    controller.deleteObject(children[update.index]);
+                }
                 children[update.index] = update.adaptee->id();
 
                 if (adaptee->kind() == BLOCK)
@@ -439,7 +454,7 @@ struct version
         }
         else
         {
-            model::Diagram* adaptee = static_cast<model::Diagram*>(adaptor.getAdaptee());
+            model::Diagram *adaptee = static_cast<model::Diagram *>(adaptor.getAdaptee());
             controller.getObjectProperty(adaptee, VERSION_NUMBER, version);
         }
 
index a6bb974..f7fb2ee 100644 (file)
 // =============================================================================
 //
 // <-- CLI SHELL MODE -->
+scicos_log("INFO")
+ ans  =
+ WARNING
 loadXcosLibs();
 // check contained blocks interfaces
 o = CONST_m("define");
+Xcos info:    objectCreated( 1 , BLOCK )
+Xcos info:    objectCreated( 2 , PORT )
 assert_checkequal(o.graphics.pin, []);
 assert_checkequal(o.graphics.pout, 0);
 assert_checkequal(o.graphics.pein, []);
 assert_checkequal(o.graphics.peout, []);
 clear o
+Xcos info:    objectDeleted( 2 , PORT )
+Xcos info:    objectDeleted( 1 , BLOCK )
 o = TRASH_f("define");
+Xcos info:    objectCreated( 3 , BLOCK )
+Xcos info:    objectCreated( 4 , PORT )
+Xcos info:    objectCreated( 5 , PORT )
 assert_checkequal(o.graphics.pin, 0);
 assert_checkequal(o.graphics.pout, []);
 assert_checkequal(o.graphics.pein, 0);
 assert_checkequal(o.graphics.peout, []);
 clear o
+Xcos info:    objectDeleted( 4 , PORT )
+Xcos info:    objectDeleted( 5 , PORT )
+Xcos info:    objectDeleted( 3 , BLOCK )
 o = CLOCK_f("define");
+Xcos info:    objectCreated( 6 , BLOCK )
+Xcos info:    objectCreated( 7 , PORT )
+Xcos info:    objectCreated( 8 , PORT )
+Xcos info:    objectCreated( 9 , BLOCK )
+Xcos info:    objectCreated( 10 , PORT )
+Xcos info:    objectCreated( 11 , BLOCK )
+Xcos info:    objectCreated( 12 , PORT )
+Xcos info:    objectCreated( 13 , PORT )
+Xcos info:    objectCreated( 14 , PORT )
+Xcos info:    objectCreated( 15 , DIAGRAM )
+Xcos info:    objectCreated( 16 , BLOCK )
+Xcos info:    objectCloned( 9 , 16 , BLOCK )
+Xcos info:    objectCreated( 17 , PORT )
+Xcos info:    objectCloned( 10 , 17 , PORT )
+Xcos info:    objectCreated( 18 , BLOCK )
+Xcos info:    objectCloned( 6 , 18 , BLOCK )
+Xcos info:    objectCreated( 19 , PORT )
+Xcos info:    objectCloned( 7 , 19 , PORT )
+Xcos info:    objectCreated( 20 , PORT )
+Xcos info:    objectCloned( 8 , 20 , PORT )
+Xcos info:    objectCreated( 21 , LINK )
+Xcos info:    objectCreated( 22 , LINK )
+Xcos info:    objectCloned( 21 , 22 , LINK )
+Xcos info:    objectDeleted( 21 , LINK )
+Xcos info:    objectCreated( 23 , BLOCK )
+Xcos info:    objectCloned( 11 , 23 , BLOCK )
+Xcos info:    objectCreated( 24 , PORT )
+Xcos info:    objectCloned( 12 , 24 , PORT )
+Xcos info:    objectCreated( 25 , PORT )
+Xcos info:    objectCloned( 13 , 25 , PORT )
+Xcos info:    objectCreated( 26 , PORT )
+Xcos info:    objectCloned( 14 , 26 , PORT )
+Xcos info:    objectCreated( 27 , LINK )
+Xcos info:    objectCreated( 28 , LINK )
+Xcos info:    objectCloned( 27 , 28 , LINK )
+Xcos info:    objectDeleted( 27 , LINK )
+Xcos info:    objectCreated( 29 , LINK )
+Xcos info:    objectCreated( 30 , LINK )
+Xcos info:    objectCloned( 29 , 30 , LINK )
+Xcos info:    objectDeleted( 29 , LINK )
+Xcos info:    objectCreated( 31 , BLOCK )
+Xcos info:    objectCreated( 32 , PORT )
+Xcos info:    objectCreated( 33 , BLOCK )
+Xcos info:    objectCloned( 16 , 33 , BLOCK )
+Xcos info:    objectCreated( 34 , PORT )
+Xcos info:    objectCloned( 17 , 34 , PORT )
+Xcos info:    objectCreated( 35 , BLOCK )
+Xcos info:    objectCloned( 18 , 35 , BLOCK )
+Xcos info:    objectCreated( 36 , PORT )
+Xcos info:    objectCloned( 19 , 36 , PORT )
+Xcos info:    objectCreated( 37 , PORT )
+Xcos info:    objectCloned( 20 , 37 , PORT )
+Xcos info:    objectCreated( 38 , LINK )
+Xcos info:    objectCloned( 22 , 38 , LINK )
+Xcos info:    objectCreated( 39 , BLOCK )
+Xcos info:    objectCloned( 23 , 39 , BLOCK )
+Xcos info:    objectCreated( 40 , PORT )
+Xcos info:    objectCloned( 24 , 40 , PORT )
+Xcos info:    objectCreated( 41 , PORT )
+Xcos info:    objectCloned( 25 , 41 , PORT )
+Xcos info:    objectCreated( 42 , PORT )
+Xcos info:    objectCloned( 26 , 42 , PORT )
+Xcos info:    objectCreated( 43 , LINK )
+Xcos info:    objectCloned( 28 , 43 , LINK )
+Xcos info:    objectCreated( 44 , LINK )
+Xcos info:    objectCloned( 30 , 44 , LINK )
+Xcos info:    objectDeleted( 17 , PORT )
+Xcos info:    objectDeleted( 16 , BLOCK )
+Xcos info:    objectDeleted( 19 , PORT )
+Xcos info:    objectDeleted( 20 , PORT )
+Xcos info:    objectDeleted( 18 , BLOCK )
+Xcos info:    objectDeleted( 22 , LINK )
+Xcos info:    objectDeleted( 24 , PORT )
+Xcos info:    objectDeleted( 25 , PORT )
+Xcos info:    objectDeleted( 26 , PORT )
+Xcos info:    objectDeleted( 23 , BLOCK )
+Xcos info:    objectDeleted( 28 , LINK )
+Xcos info:    objectDeleted( 30 , LINK )
+Xcos info:    objectDeleted( 15 , DIAGRAM )
+Xcos info:    objectDeleted( 7 , PORT )
+Xcos info:    objectDeleted( 8 , PORT )
+Xcos info:    objectDeleted( 6 , BLOCK )
+Xcos info:    objectDeleted( 10 , PORT )
+Xcos info:    objectDeleted( 9 , BLOCK )
+Xcos info:    objectDeleted( 12 , PORT )
+Xcos info:    objectDeleted( 13 , PORT )
+Xcos info:    objectDeleted( 14 , PORT )
+Xcos info:    objectDeleted( 11 , BLOCK )
 assert_checkequal(o.graphics.pin, []);
 assert_checkequal(o.graphics.pout, []);
 assert_checkequal(o.graphics.pein, []);
@@ -38,6 +139,20 @@ assert_checkequal(o.model.rpar.objs(2).graphics.pout, []);
 assert_checkequal(o.model.rpar.objs(2).graphics.pein, 6);
 assert_checkequal(o.model.rpar.objs(2).graphics.peout, 3);
 clear o
+Xcos info:    objectDeleted( 32 , PORT )
+Xcos info:    objectDeleted( 34 , PORT )
+Xcos info:    objectDeleted( 33 , BLOCK )
+Xcos info:    objectDeleted( 36 , PORT )
+Xcos info:    objectDeleted( 37 , PORT )
+Xcos info:    objectDeleted( 35 , BLOCK )
+Xcos info:    objectDeleted( 38 , LINK )
+Xcos info:    objectDeleted( 40 , PORT )
+Xcos info:    objectDeleted( 41 , PORT )
+Xcos info:    objectDeleted( 42 , PORT )
+Xcos info:    objectDeleted( 39 , BLOCK )
+Xcos info:    objectDeleted( 43 , LINK )
+Xcos info:    objectDeleted( 44 , LINK )
+Xcos info:    objectDeleted( 31 , BLOCK )
 // create a block and connect it
 function o = create_and_connect(fname, pin, pout, pein, peout)
     o = fname("define");
@@ -53,6 +168,102 @@ TRASH_f("define"), ..
 CLOCK_c("define"), ..
 scicos_link(from=[1 1 0],to=[2 1 1]), ..
 scicos_link(from=[3 1 0],to=[2 1 1],ct=[5,-1])));
+Xcos info:    objectCreated( 45 , BLOCK )
+Xcos info:    objectCreated( 46 , PORT )
+Xcos info:    objectCreated( 47 , BLOCK )
+Xcos info:    objectCreated( 48 , PORT )
+Xcos info:    objectCreated( 49 , PORT )
+Xcos info:    objectCreated( 50 , BLOCK )
+Xcos info:    objectCreated( 51 , PORT )
+Xcos info:    objectCreated( 52 , PORT )
+Xcos info:    objectCreated( 53 , BLOCK )
+Xcos info:    objectCreated( 54 , PORT )
+Xcos info:    objectCreated( 55 , BLOCK )
+Xcos info:    objectCreated( 56 , PORT )
+Xcos info:    objectCreated( 57 , PORT )
+Xcos info:    objectCreated( 58 , PORT )
+Xcos info:    objectCreated( 59 , DIAGRAM )
+Xcos info:    objectCreated( 60 , BLOCK )
+Xcos info:    objectCloned( 53 , 60 , BLOCK )
+Xcos info:    objectCreated( 61 , PORT )
+Xcos info:    objectCloned( 54 , 61 , PORT )
+Xcos info:    objectCreated( 62 , BLOCK )
+Xcos info:    objectCloned( 50 , 62 , BLOCK )
+Xcos info:    objectCreated( 63 , PORT )
+Xcos info:    objectCloned( 51 , 63 , PORT )
+Xcos info:    objectCreated( 64 , PORT )
+Xcos info:    objectCloned( 52 , 64 , PORT )
+Xcos info:    objectCreated( 65 , LINK )
+Xcos info:    objectCreated( 66 , LINK )
+Xcos info:    objectCloned( 65 , 66 , LINK )
+Xcos info:    objectDeleted( 65 , LINK )
+Xcos info:    objectCreated( 67 , BLOCK )
+Xcos info:    objectCloned( 55 , 67 , BLOCK )
+Xcos info:    objectCreated( 68 , PORT )
+Xcos info:    objectCloned( 56 , 68 , PORT )
+Xcos info:    objectCreated( 69 , PORT )
+Xcos info:    objectCloned( 57 , 69 , PORT )
+Xcos info:    objectCreated( 70 , PORT )
+Xcos info:    objectCloned( 58 , 70 , PORT )
+Xcos info:    objectCreated( 71 , LINK )
+Xcos info:    objectCreated( 72 , LINK )
+Xcos info:    objectCloned( 71 , 72 , LINK )
+Xcos info:    objectDeleted( 71 , LINK )
+Xcos info:    objectCreated( 73 , LINK )
+Xcos info:    objectCreated( 74 , LINK )
+Xcos info:    objectCloned( 73 , 74 , LINK )
+Xcos info:    objectDeleted( 73 , LINK )
+Xcos info:    objectCreated( 75 , BLOCK )
+Xcos info:    objectCreated( 76 , PORT )
+Xcos info:    objectCreated( 77 , BLOCK )
+Xcos info:    objectCloned( 60 , 77 , BLOCK )
+Xcos info:    objectCreated( 78 , PORT )
+Xcos info:    objectCloned( 61 , 78 , PORT )
+Xcos info:    objectCreated( 79 , BLOCK )
+Xcos info:    objectCloned( 62 , 79 , BLOCK )
+Xcos info:    objectCreated( 80 , PORT )
+Xcos info:    objectCloned( 63 , 80 , PORT )
+Xcos info:    objectCreated( 81 , PORT )
+Xcos info:    objectCloned( 64 , 81 , PORT )
+Xcos info:    objectCreated( 82 , LINK )
+Xcos info:    objectCloned( 66 , 82 , LINK )
+Xcos info:    objectCreated( 83 , BLOCK )
+Xcos info:    objectCloned( 67 , 83 , BLOCK )
+Xcos info:    objectCreated( 84 , PORT )
+Xcos info:    objectCloned( 68 , 84 , PORT )
+Xcos info:    objectCreated( 85 , PORT )
+Xcos info:    objectCloned( 69 , 85 , PORT )
+Xcos info:    objectCreated( 86 , PORT )
+Xcos info:    objectCloned( 70 , 86 , PORT )
+Xcos info:    objectCreated( 87 , LINK )
+Xcos info:    objectCloned( 72 , 87 , LINK )
+Xcos info:    objectCreated( 88 , LINK )
+Xcos info:    objectCloned( 74 , 88 , LINK )
+Xcos info:    objectDeleted( 61 , PORT )
+Xcos info:    objectDeleted( 60 , BLOCK )
+Xcos info:    objectDeleted( 63 , PORT )
+Xcos info:    objectDeleted( 64 , PORT )
+Xcos info:    objectDeleted( 62 , BLOCK )
+Xcos info:    objectDeleted( 66 , LINK )
+Xcos info:    objectDeleted( 68 , PORT )
+Xcos info:    objectDeleted( 69 , PORT )
+Xcos info:    objectDeleted( 70 , PORT )
+Xcos info:    objectDeleted( 67 , BLOCK )
+Xcos info:    objectDeleted( 72 , LINK )
+Xcos info:    objectDeleted( 74 , LINK )
+Xcos info:    objectDeleted( 59 , DIAGRAM )
+Xcos info:    objectDeleted( 51 , PORT )
+Xcos info:    objectDeleted( 52 , PORT )
+Xcos info:    objectDeleted( 50 , BLOCK )
+Xcos info:    objectDeleted( 54 , PORT )
+Xcos info:    objectDeleted( 53 , BLOCK )
+Xcos info:    objectDeleted( 56 , PORT )
+Xcos info:    objectDeleted( 57 , PORT )
+Xcos info:    objectDeleted( 58 , PORT )
+Xcos info:    objectDeleted( 55 , BLOCK )
+Xcos info:    objectCreated( 89 , LINK )
+Xcos info:    objectCreated( 90 , LINK )
+Xcos info:    objectCreated( 91 , DIAGRAM )
 assert_checkequal(scs_m.objs(1).graphics.pout, 4);
 assert_checkequal(scs_m.objs(2).graphics.pin, 4);
 assert_checkequal(scs_m.objs(2).graphics.pein, 5);
@@ -71,6 +282,249 @@ assert_checkequal(scs_m.objs(3).model.rpar.objs(2).graphics.pein, 6);
 assert_checkequal(scs_m.objs(3).model.rpar.objs(2).graphics.peout, 3);
 needcompile = 4;
 [scs_m, %cpr, needcompile, ok] = do_eval(scs_m, list(),struct());
+Xcos info:    objectCreated( 92 , BLOCK )
+Xcos info:    objectCloned( 45 , 92 , BLOCK )
+Xcos info:    objectCreated( 93 , PORT )
+Xcos info:    objectCloned( 46 , 93 , PORT )
+Xcos info:    objectCreated( 94 , BLOCK )
+Xcos info:    objectCloned( 77 , 94 , BLOCK )
+Xcos info:    objectCreated( 95 , PORT )
+Xcos info:    objectCloned( 78 , 95 , PORT )
+Xcos info:    objectCreated( 96 , BLOCK )
+Xcos info:    objectCloned( 79 , 96 , BLOCK )
+Xcos info:    objectCreated( 97 , PORT )
+Xcos info:    objectCloned( 80 , 97 , PORT )
+Xcos info:    objectCreated( 98 , PORT )
+Xcos info:    objectCloned( 81 , 98 , PORT )
+Xcos info:    objectCreated( 99 , BLOCK )
+Xcos info:    objectCloned( 75 , 99 , BLOCK )
+Xcos info:    objectCreated( 100 , PORT )
+Xcos info:    objectCloned( 76 , 100 , PORT )
+Xcos info:    objectCreated( 101 , BLOCK )
+Xcos info:    objectCloned( 77 , 101 , BLOCK )
+Xcos info:    objectCreated( 102 , PORT )
+Xcos info:    objectCloned( 78 , 102 , PORT )
+Xcos info:    objectCreated( 103 , BLOCK )
+Xcos info:    objectCloned( 79 , 103 , BLOCK )
+Xcos info:    objectCreated( 104 , PORT )
+Xcos info:    objectCloned( 80 , 104 , PORT )
+Xcos info:    objectCreated( 105 , PORT )
+Xcos info:    objectCloned( 81 , 105 , PORT )
+Xcos info:    objectCreated( 106 , LINK )
+Xcos info:    objectCloned( 82 , 106 , LINK )
+Xcos info:    objectCreated( 107 , BLOCK )
+Xcos info:    objectCloned( 83 , 107 , BLOCK )
+Xcos info:    objectCreated( 108 , PORT )
+Xcos info:    objectCloned( 84 , 108 , PORT )
+Xcos info:    objectCreated( 109 , PORT )
+Xcos info:    objectCloned( 85 , 109 , PORT )
+Xcos info:    objectCreated( 110 , PORT )
+Xcos info:    objectCloned( 86 , 110 , PORT )
+Xcos info:    objectCreated( 111 , LINK )
+Xcos info:    objectCloned( 87 , 111 , LINK )
+Xcos info:    objectCreated( 112 , LINK )
+Xcos info:    objectCloned( 88 , 112 , LINK )
+Xcos info:    objectCreated( 113 , LINK )
+Xcos info:    objectCloned( 82 , 113 , LINK )
+Xcos info:    objectCreated( 114 , BLOCK )
+Xcos info:    objectCloned( 83 , 114 , BLOCK )
+Xcos info:    objectCreated( 115 , PORT )
+Xcos info:    objectCloned( 84 , 115 , PORT )
+Xcos info:    objectCreated( 116 , PORT )
+Xcos info:    objectCloned( 85 , 116 , PORT )
+Xcos info:    objectCreated( 117 , PORT )
+Xcos info:    objectCloned( 86 , 117 , PORT )
+Xcos info:    objectCreated( 118 , LINK )
+Xcos info:    objectCloned( 87 , 118 , LINK )
+Xcos info:    objectCreated( 119 , LINK )
+Xcos info:    objectCloned( 88 , 119 , LINK )
+Xcos info:    objectDeleted( 102 , PORT )
+Xcos info:    objectDeleted( 101 , BLOCK )
+Xcos info:    objectDeleted( 104 , PORT )
+Xcos info:    objectDeleted( 105 , PORT )
+Xcos info:    objectDeleted( 103 , BLOCK )
+Xcos info:    objectDeleted( 106 , LINK )
+Xcos info:    objectDeleted( 108 , PORT )
+Xcos info:    objectDeleted( 109 , PORT )
+Xcos info:    objectDeleted( 110 , PORT )
+Xcos info:    objectDeleted( 107 , BLOCK )
+Xcos info:    objectDeleted( 111 , LINK )
+Xcos info:    objectDeleted( 112 , LINK )
+Xcos info:    objectCreated( 120 , BLOCK )
+Xcos info:    objectCloned( 75 , 120 , BLOCK )
+Xcos info:    objectCreated( 121 , PORT )
+Xcos info:    objectCloned( 76 , 121 , PORT )
+Xcos info:    objectCreated( 122 , BLOCK )
+Xcos info:    objectCloned( 77 , 122 , BLOCK )
+Xcos info:    objectCreated( 123 , PORT )
+Xcos info:    objectCloned( 78 , 123 , PORT )
+Xcos info:    objectCreated( 124 , BLOCK )
+Xcos info:    objectCloned( 79 , 124 , BLOCK )
+Xcos info:    objectCreated( 125 , PORT )
+Xcos info:    objectCloned( 80 , 125 , PORT )
+Xcos info:    objectCreated( 126 , PORT )
+Xcos info:    objectCloned( 81 , 126 , PORT )
+Xcos info:    objectCreated( 127 , LINK )
+Xcos info:    objectCloned( 82 , 127 , LINK )
+Xcos info:    objectCreated( 128 , BLOCK )
+Xcos info:    objectCloned( 83 , 128 , BLOCK )
+Xcos info:    objectCreated( 129 , PORT )
+Xcos info:    objectCloned( 84 , 129 , PORT )
+Xcos info:    objectCreated( 130 , PORT )
+Xcos info:    objectCloned( 85 , 130 , PORT )
+Xcos info:    objectCreated( 131 , PORT )
+Xcos info:    objectCloned( 86 , 131 , PORT )
+Xcos info:    objectCreated( 132 , LINK )
+Xcos info:    objectCloned( 87 , 132 , LINK )
+Xcos info:    objectCreated( 133 , LINK )
+Xcos info:    objectCloned( 88 , 133 , LINK )
+Xcos info:    objectCreated( 134 , BLOCK )
+Xcos info:    objectCloned( 94 , 134 , BLOCK )
+Xcos info:    objectCreated( 135 , PORT )
+Xcos info:    objectCloned( 95 , 135 , PORT )
+Xcos info:    objectCreated( 136 , BLOCK )
+Xcos info:    objectCloned( 96 , 136 , BLOCK )
+Xcos info:    objectCreated( 137 , PORT )
+Xcos info:    objectCloned( 97 , 137 , PORT )
+Xcos info:    objectCreated( 138 , PORT )
+Xcos info:    objectCloned( 98 , 138 , PORT )
+Xcos info:    objectCreated( 139 , LINK )
+Xcos info:    objectCloned( 113 , 139 , LINK )
+Xcos info:    objectCreated( 140 , BLOCK )
+Xcos info:    objectCloned( 114 , 140 , BLOCK )
+Xcos info:    objectCreated( 141 , PORT )
+Xcos info:    objectCloned( 115 , 141 , PORT )
+Xcos info:    objectCreated( 142 , PORT )
+Xcos info:    objectCloned( 116 , 142 , PORT )
+Xcos info:    objectCreated( 143 , PORT )
+Xcos info:    objectCloned( 117 , 143 , PORT )
+Xcos info:    objectCreated( 144 , LINK )
+Xcos info:    objectCloned( 118 , 144 , LINK )
+Xcos info:    objectCreated( 145 , LINK )
+Xcos info:    objectCloned( 119 , 145 , LINK )
+Xcos info:    objectDeleted( 123 , PORT )
+Xcos info:    objectDeleted( 122 , BLOCK )
+Xcos info:    objectDeleted( 125 , PORT )
+Xcos info:    objectDeleted( 126 , PORT )
+Xcos info:    objectDeleted( 124 , BLOCK )
+Xcos info:    objectDeleted( 127 , LINK )
+Xcos info:    objectDeleted( 129 , PORT )
+Xcos info:    objectDeleted( 130 , PORT )
+Xcos info:    objectDeleted( 131 , PORT )
+Xcos info:    objectDeleted( 128 , BLOCK )
+Xcos info:    objectDeleted( 132 , LINK )
+Xcos info:    objectDeleted( 133 , LINK )
+Xcos info:    objectCreated( 146 , DIAGRAM )
+Xcos info:    objectCloned( 91 , 146 , DIAGRAM )
+Xcos info:    objectCreated( 147 , BLOCK )
+Xcos info:    objectCloned( 45 , 147 , BLOCK )
+Xcos info:    objectCreated( 148 , PORT )
+Xcos info:    objectCloned( 46 , 148 , PORT )
+Xcos info:    objectCreated( 149 , BLOCK )
+Xcos info:    objectCloned( 47 , 149 , BLOCK )
+Xcos info:    objectCreated( 150 , PORT )
+Xcos info:    objectCloned( 48 , 150 , PORT )
+Xcos info:    objectCreated( 151 , PORT )
+Xcos info:    objectCloned( 49 , 151 , PORT )
+Xcos info:    objectCreated( 152 , BLOCK )
+Xcos info:    objectCloned( 75 , 152 , BLOCK )
+Xcos info:    objectCreated( 153 , PORT )
+Xcos info:    objectCloned( 76 , 153 , PORT )
+Xcos info:    objectCreated( 154 , BLOCK )
+Xcos info:    objectCloned( 77 , 154 , BLOCK )
+Xcos info:    objectCreated( 155 , PORT )
+Xcos info:    objectCloned( 78 , 155 , PORT )
+Xcos info:    objectCreated( 156 , BLOCK )
+Xcos info:    objectCloned( 79 , 156 , BLOCK )
+Xcos info:    objectCreated( 157 , PORT )
+Xcos info:    objectCloned( 80 , 157 , PORT )
+Xcos info:    objectCreated( 158 , PORT )
+Xcos info:    objectCloned( 81 , 158 , PORT )
+Xcos info:    objectCreated( 159 , LINK )
+Xcos info:    objectCloned( 82 , 159 , LINK )
+Xcos info:    objectCreated( 160 , BLOCK )
+Xcos info:    objectCloned( 83 , 160 , BLOCK )
+Xcos info:    objectCreated( 161 , PORT )
+Xcos info:    objectCloned( 84 , 161 , PORT )
+Xcos info:    objectCreated( 162 , PORT )
+Xcos info:    objectCloned( 85 , 162 , PORT )
+Xcos info:    objectCreated( 163 , PORT )
+Xcos info:    objectCloned( 86 , 163 , PORT )
+Xcos info:    objectCreated( 164 , LINK )
+Xcos info:    objectCloned( 87 , 164 , LINK )
+Xcos info:    objectCreated( 165 , LINK )
+Xcos info:    objectCloned( 88 , 165 , LINK )
+Xcos info:    objectCreated( 166 , LINK )
+Xcos info:    objectCloned( 89 , 166 , LINK )
+Xcos info:    objectCreated( 167 , LINK )
+Xcos info:    objectCloned( 90 , 167 , LINK )
+Xcos info:    objectCreated( 168 , BLOCK )
+Xcos info:    objectCloned( 47 , 168 , BLOCK )
+Xcos info:    objectCreated( 169 , PORT )
+Xcos info:    objectCloned( 48 , 169 , PORT )
+Xcos info:    objectCreated( 170 , PORT )
+Xcos info:    objectCloned( 49 , 170 , PORT )
+Xcos info:    objectCreated( 171 , LINK )
+Xcos info:    objectCloned( 89 , 171 , LINK )
+Xcos info:    objectCreated( 172 , LINK )
+Xcos info:    objectCloned( 90 , 172 , LINK )
+Xcos info:    objectDeleted( 148 , PORT )
+Xcos info:    objectDeleted( 147 , BLOCK )
+Xcos info:    objectDeleted( 150 , PORT )
+Xcos info:    objectDeleted( 151 , PORT )
+Xcos info:    objectDeleted( 149 , BLOCK )
+Xcos info:    objectDeleted( 153 , PORT )
+Xcos info:    objectDeleted( 155 , PORT )
+Xcos info:    objectDeleted( 154 , BLOCK )
+Xcos info:    objectDeleted( 157 , PORT )
+Xcos info:    objectDeleted( 158 , PORT )
+Xcos info:    objectDeleted( 156 , BLOCK )
+Xcos info:    objectDeleted( 159 , LINK )
+Xcos info:    objectDeleted( 161 , PORT )
+Xcos info:    objectDeleted( 162 , PORT )
+Xcos info:    objectDeleted( 163 , PORT )
+Xcos info:    objectDeleted( 160 , BLOCK )
+Xcos info:    objectDeleted( 164 , LINK )
+Xcos info:    objectDeleted( 165 , LINK )
+Xcos info:    objectDeleted( 152 , BLOCK )
+Xcos info:    objectDeleted( 166 , LINK )
+Xcos info:    objectDeleted( 167 , LINK )
+Xcos info:    objectDeleted( 100 , PORT )
+Xcos info:    objectDeleted( 95 , PORT )
+Xcos info:    objectDeleted( 94 , BLOCK )
+Xcos info:    objectDeleted( 97 , PORT )
+Xcos info:    objectDeleted( 98 , PORT )
+Xcos info:    objectDeleted( 96 , BLOCK )
+Xcos info:    objectDeleted( 113 , LINK )
+Xcos info:    objectDeleted( 115 , PORT )
+Xcos info:    objectDeleted( 116 , PORT )
+Xcos info:    objectDeleted( 117 , PORT )
+Xcos info:    objectDeleted( 114 , BLOCK )
+Xcos info:    objectDeleted( 118 , LINK )
+Xcos info:    objectDeleted( 119 , LINK )
+Xcos info:    objectDeleted( 99 , BLOCK )
+Xcos info:    objectDeleted( 46 , PORT )
+Xcos info:    objectDeleted( 45 , BLOCK )
+Xcos info:    objectDeleted( 48 , PORT )
+Xcos info:    objectDeleted( 49 , PORT )
+Xcos info:    objectDeleted( 47 , BLOCK )
+Xcos info:    objectDeleted( 76 , PORT )
+Xcos info:    objectDeleted( 78 , PORT )
+Xcos info:    objectDeleted( 77 , BLOCK )
+Xcos info:    objectDeleted( 80 , PORT )
+Xcos info:    objectDeleted( 81 , PORT )
+Xcos info:    objectDeleted( 79 , BLOCK )
+Xcos info:    objectDeleted( 82 , LINK )
+Xcos info:    objectDeleted( 84 , PORT )
+Xcos info:    objectDeleted( 85 , PORT )
+Xcos info:    objectDeleted( 86 , PORT )
+Xcos info:    objectDeleted( 83 , BLOCK )
+Xcos info:    objectDeleted( 87 , LINK )
+Xcos info:    objectDeleted( 88 , LINK )
+Xcos info:    objectDeleted( 75 , BLOCK )
+Xcos info:    objectDeleted( 89 , LINK )
+Xcos info:    objectDeleted( 90 , LINK )
+Xcos info:    objectDeleted( 91 , DIAGRAM )
 assert_checkequal(scs_m.objs(1).graphics.pout, 4);
 assert_checkequal(scs_m.objs(2).graphics.pin, 4);
 assert_checkequal(scs_m.objs(2).graphics.pein, 5);
@@ -87,3 +541,26 @@ assert_checkequal(scs_m.objs(3).model.rpar.objs(2).graphics.pin, []);
 assert_checkequal(scs_m.objs(3).model.rpar.objs(2).graphics.pout, []);
 assert_checkequal(scs_m.objs(3).model.rpar.objs(2).graphics.pein, 6);
 assert_checkequal(scs_m.objs(3).model.rpar.objs(2).graphics.peout, 3);
+clear scs_m
+Xcos info:    objectDeleted( 93 , PORT )
+Xcos info:    objectDeleted( 92 , BLOCK )
+Xcos info:    objectDeleted( 169 , PORT )
+Xcos info:    objectDeleted( 170 , PORT )
+Xcos info:    objectDeleted( 168 , BLOCK )
+Xcos info:    objectDeleted( 121 , PORT )
+Xcos info:    objectDeleted( 135 , PORT )
+Xcos info:    objectDeleted( 134 , BLOCK )
+Xcos info:    objectDeleted( 137 , PORT )
+Xcos info:    objectDeleted( 138 , PORT )
+Xcos info:    objectDeleted( 136 , BLOCK )
+Xcos info:    objectDeleted( 139 , LINK )
+Xcos info:    objectDeleted( 141 , PORT )
+Xcos info:    objectDeleted( 142 , PORT )
+Xcos info:    objectDeleted( 143 , PORT )
+Xcos info:    objectDeleted( 140 , BLOCK )
+Xcos info:    objectDeleted( 144 , LINK )
+Xcos info:    objectDeleted( 145 , LINK )
+Xcos info:    objectDeleted( 120 , BLOCK )
+Xcos info:    objectDeleted( 171 , LINK )
+Xcos info:    objectDeleted( 172 , LINK )
+Xcos info:    objectDeleted( 146 , DIAGRAM )
index 2666901..b3ab483 100644 (file)
@@ -7,6 +7,7 @@
 //
 // <-- CLI SHELL MODE -->
 
+scicos_log("INFO")
 loadXcosLibs();
 
 // check contained blocks interfaces
@@ -100,4 +101,4 @@ assert_checkequal(scs_m.objs(3).model.rpar.objs(2).graphics.pout, []);
 assert_checkequal(scs_m.objs(3).model.rpar.objs(2).graphics.pein, 6);
 assert_checkequal(scs_m.objs(3).model.rpar.objs(2).graphics.peout, 3);
 
-
+clear scs_m
diff --git a/scilab/modules/scicos/tests/unit_tests/do_eval_check_leaks.tst b/scilab/modules/scicos/tests/unit_tests/do_eval_check_leaks.tst
new file mode 100644 (file)
index 0000000..75f2406
--- /dev/null
@@ -0,0 +1,24 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2018 - ESI Group - Clement DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+//
+// Check MVC object leaks on Scilab adapters API on a simulation sub-pass.
+
+log = mgetl("SCI/modules/scicos/tests/unit_tests/do_eval.dia.ref");
+
+log = log(grep(log, ["objectCreated", "objectDeleted"]));
+objects = strtod(csvTextScan(log, " ", ".", "string")(:, 7));
+objects = gsort(objects);
+
+leaks = objects(2*find((objects(1:2:$-1) - objects(2:2:$))));
+if leaks <> [] then
+    error("found leaks at " + string(leaks));
+end
+
+
index c5ee411..d27e4bf 100644 (file)
@@ -392,12 +392,11 @@ Xcos trace:   propertyUpdated( 11 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 12 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 11 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 11 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
 Xcos info:    objectCreated( 13 , BLOCK )
 Xcos info:    objectCloned( 1 , 13 , BLOCK )
 Xcos debug:   propertyUpdated( 13 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
@@ -453,12 +452,11 @@ Xcos trace:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 13 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 13 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
 Xcos info:    objectCreated( 16 , LINK )
 Xcos debug:   propertyUpdated( 16 , LINK , CONTROL_POINTS ) : SUCCESS
 Xcos debug:   propertyUpdated( 16 , LINK , CONTROL_POINTS ) : SUCCESS
@@ -466,8 +464,8 @@ Xcos trace:   propertyUpdated( 16 , LINK , DESCRIPTION ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 16 , LINK , THICK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 16 , LINK , COLOR ) : SUCCESS
 Xcos debug:   propertyUpdated( 16 , LINK , KIND ) : SUCCESS
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos info:    objectCreated( 17 , LINK )
 Xcos info:    objectCloned( 16 , 17 , LINK )
 Xcos debug:   propertyUpdated( 17 , LINK , COLOR ) : SUCCESS
@@ -482,20 +480,19 @@ Xcos trace:   propertyUpdated( 17 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 17 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 17 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 17 , LINK ) : 1
-Xcos trace:   objectReferenced( 17 , LINK ) : 2
 Xcos debug:   propertyUpdated( 17 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 17 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 17 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 17 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
 Xcos info:    objectDeleted( 16 , LINK )
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 17 , LINK ) : 2
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 17 , LINK ) : 1
 Xcos info:    objectCreated( 18 , BLOCK )
 Xcos info:    objectCloned( 6 , 18 , BLOCK )
 Xcos trace:   propertyUpdated( 18 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -563,15 +560,14 @@ Xcos trace:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 18 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 18 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 18 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 17 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
 Xcos info:    objectCreated( 22 , LINK )
 Xcos debug:   propertyUpdated( 22 , LINK , CONTROL_POINTS ) : SUCCESS
 Xcos debug:   propertyUpdated( 22 , LINK , CONTROL_POINTS ) : SUCCESS
@@ -579,10 +575,10 @@ Xcos trace:   propertyUpdated( 22 , LINK , DESCRIPTION ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 22 , LINK , THICK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 22 , LINK , COLOR ) : SUCCESS
 Xcos debug:   propertyUpdated( 22 , LINK , KIND ) : SUCCESS
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 17 , LINK ) : 2
-Xcos trace:   objectReferenced( 18 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 17 , LINK ) : 1
+Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
 Xcos info:    objectCreated( 23 , LINK )
 Xcos info:    objectCloned( 22 , 23 , LINK )
 Xcos debug:   propertyUpdated( 23 , LINK , COLOR ) : SUCCESS
@@ -597,7 +593,6 @@ Xcos trace:   propertyUpdated( 23 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 23 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 23 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 23 , LINK ) : 1
-Xcos trace:   objectReferenced( 23 , LINK ) : 2
 Xcos debug:   propertyUpdated( 23 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 23 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -607,11 +602,11 @@ Xcos trace:   propertyUpdated( 12 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 12 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 23 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 23 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 17 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 23 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
 Xcos info:    objectDeleted( 22 , LINK )
 Xcos info:    objectCreated( 24 , LINK )
 Xcos debug:   propertyUpdated( 24 , LINK , CONTROL_POINTS ) : SUCCESS
@@ -620,11 +615,11 @@ Xcos trace:   propertyUpdated( 24 , LINK , DESCRIPTION ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 24 , LINK , THICK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 24 , LINK , COLOR ) : SUCCESS
 Xcos debug:   propertyUpdated( 24 , LINK , KIND ) : SUCCESS
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 17 , LINK ) : 2
-Xcos trace:   objectReferenced( 18 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 23 , LINK ) : 2
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 17 , LINK ) : 1
+Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 23 , LINK ) : 1
 Xcos info:    objectCreated( 25 , LINK )
 Xcos info:    objectCloned( 24 , 25 , LINK )
 Xcos debug:   propertyUpdated( 25 , LINK , COLOR ) : SUCCESS
@@ -639,7 +634,6 @@ Xcos trace:   propertyUpdated( 25 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 25 , LINK ) : 1
-Xcos trace:   objectReferenced( 25 , LINK ) : 2
 Xcos debug:   propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 25 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 21 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -649,12 +643,12 @@ Xcos trace:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 25 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 10 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 25 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 17 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 23 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 25 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 23 , LINK ) : 0
 Xcos info:    objectDeleted( 24 , LINK )
 Xcos info:    objectCreated( 26 , BLOCK )
 Xcos trace:   objectReferenced( 26 , BLOCK ) : 1
@@ -830,12 +824,12 @@ Xcos trace:   propertyUpdated( 26 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 26 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 26 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 26 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 17 , LINK ) : 2
-Xcos trace:   objectReferenced( 18 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 23 , LINK ) : 2
-Xcos trace:   objectReferenced( 25 , LINK ) : 2
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 17 , LINK ) : 1
+Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 23 , LINK ) : 1
+Xcos trace:   objectReferenced( 25 , LINK ) : 1
 Xcos info:    objectCreated( 28 , BLOCK )
 Xcos info:    objectCloned( 11 , 28 , BLOCK )
 Xcos trace:   propertyUpdated( 28 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -1044,27 +1038,21 @@ Xcos trace:   propertyUpdated( 39 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 39 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 39 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos trace:   objectReferenced( 28 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 30 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 33 , LINK ) : 1
-Xcos trace:   objectReferenced( 34 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 38 , LINK ) : 1
-Xcos trace:   objectReferenced( 39 , LINK ) : 1
-Xcos trace:   objectReferenced( 28 , BLOCK ) : 2
 Xcos trace:   propertyUpdated( 28 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 28 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 30 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 30 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 30 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 33 , LINK ) : 2
+Xcos trace:   objectReferenced( 33 , LINK ) : 1
 Xcos trace:   propertyUpdated( 33 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 33 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 34 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 34 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 34 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 34 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 38 , LINK ) : 2
+Xcos trace:   objectReferenced( 38 , LINK ) : 1
 Xcos trace:   propertyUpdated( 38 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 38 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 39 , LINK ) : 2
+Xcos trace:   objectReferenced( 39 , LINK ) : 1
 Xcos trace:   propertyUpdated( 39 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 39 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : SUCCESS
@@ -1080,18 +1068,18 @@ Xcos debug:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 33 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 28 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 33 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 38 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 39 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 17 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 23 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 25 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 28 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 38 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 39 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 23 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 25 , LINK ) : 0
 Xcos trace:   objectReferenced( 10 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 10 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 26 , BLOCK ) : 3
@@ -1116,12 +1104,47 @@ Xcos debug:   propertyUpdated( 17 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 23 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 17 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 23 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 25 , LINK ) : 0
+Xcos trace:   propertyUpdated( 11 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 23 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 12 , PORT )
+Xcos info:    objectDeleted( 11 , BLOCK )
+Xcos trace:   propertyUpdated( 13 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 25 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 14 , PORT )
+Xcos trace:   propertyUpdated( 13 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 17 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 15 , PORT )
+Xcos info:    objectDeleted( 13 , BLOCK )
+Xcos info:    objectDeleted( 17 , LINK )
+Xcos trace:   propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 19 , PORT )
+Xcos trace:   propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 23 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 20 , PORT )
+Xcos trace:   propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 25 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 21 , PORT )
+Xcos info:    objectDeleted( 18 , BLOCK )
+Xcos info:    objectDeleted( 23 , LINK )
+Xcos info:    objectDeleted( 25 , LINK )
 Xcos info:    objectDeleted( 10 , DIAGRAM )
 Xcos trace:   propertyUpdated( 1 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , OUTPUTS ) : NO_CHANGES
@@ -1433,24 +1456,23 @@ Xcos debug:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 46 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   objectReferenced( 41 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 41 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 41 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 41 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 40 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 0
 assert_checkequal(d.objs(1).model.rpar.objs(3).from, [2 1 0]);
+Xcos trace:   objectReferenced( 41 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 41 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 41 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 41 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 45 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 48 , LINK ) : 1
 Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 53 , LINK ) : 1
 Xcos trace:   objectReferenced( 54 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 45 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
@@ -1458,18 +1480,18 @@ Xcos trace:   objectUnreferenced( 53 , LINK ) : 0
 Xcos trace:   objectUnreferenced( 54 , LINK ) : 0
 Xcos trace:   objectUnreferenced( 48 , LINK ) : 0
 assert_checkequal(d.objs(1).model.rpar.objs(3).to,   [4 1 1]);
+Xcos trace:   objectReferenced( 41 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 41 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 41 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 41 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 45 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 48 , LINK ) : 1
 Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 53 , LINK ) : 1
 Xcos trace:   objectReferenced( 54 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 45 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
@@ -1817,7 +1839,60 @@ Xcos trace:   objectUnreferenced( 63 , LINK ) : 0
 // Check that all the model items are freed
 clear
 Xcos debug:   propertyUpdated( 41 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 0
+Xcos trace:   propertyUpdated( 41 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 41 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos info:    objectDeleted( 42 , PORT )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 43 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 43 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 43 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 53 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 44 , PORT )
+Xcos info:    objectDeleted( 43 , BLOCK )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 45 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 54 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 46 , PORT )
+Xcos trace:   propertyUpdated( 45 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 45 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 48 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 47 , PORT )
+Xcos info:    objectDeleted( 45 , BLOCK )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 50 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 48 , LINK )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 49 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 50 , PORT )
+Xcos trace:   propertyUpdated( 49 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 53 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 51 , PORT )
+Xcos trace:   propertyUpdated( 49 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 54 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 52 , PORT )
+Xcos info:    objectDeleted( 49 , BLOCK )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 53 , LINK )
+Xcos debug:   propertyUpdated( 41 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 54 , LINK )
+Xcos info:    objectDeleted( 41 , BLOCK )
 Xcos info:    objectDeleted( 40 , DIAGRAM )
 Xcos debug:   propertyUpdated( 56 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 56 , BLOCK , INPUTS ) : NO_CHANGES
@@ -1880,10 +1955,52 @@ Xcos trace:   propertyUpdated( 26 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 26 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 26 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
 Xcos info:    objectDeleted( 27 , PORT )
-Xcos trace:   objectUnreferenced( 28 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 38 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 39 , LINK ) : 0
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 28 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 28 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 28 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 28 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 38 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 29 , PORT )
+Xcos info:    objectDeleted( 28 , BLOCK )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 39 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 31 , PORT )
+Xcos trace:   propertyUpdated( 30 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 33 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 32 , PORT )
+Xcos info:    objectDeleted( 30 , BLOCK )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 33 , LINK )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 34 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 35 , PORT )
+Xcos trace:   propertyUpdated( 34 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 38 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 36 , PORT )
+Xcos trace:   propertyUpdated( 34 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 39 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 37 , PORT )
+Xcos info:    objectDeleted( 34 , BLOCK )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 38 , LINK )
+Xcos debug:   propertyUpdated( 26 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 39 , LINK )
 Xcos info:    objectDeleted( 26 , BLOCK )
index 682b119..ddcffd5 100644 (file)
@@ -105,11 +105,10 @@ Xcos trace:   propertyUpdated( 4 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 4 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 4 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 4 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 4 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 4 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 2 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 4 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 4 , BLOCK ) : 0
 super.model.rpar = d;
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
@@ -120,7 +119,7 @@ Xcos trace:   propertyUpdated( 1 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 4 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 4 , BLOCK ) : 1
 Xcos info:    objectCreated( 5 , BLOCK )
 Xcos info:    objectCloned( 4 , 5 , BLOCK )
 Xcos trace:   propertyUpdated( 5 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -152,12 +151,11 @@ Xcos trace:   propertyUpdated( 5 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 5 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 5 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 5 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 5 , BLOCK ) : 2
 Xcos trace:   propertyUpdated( 5 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 5 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 1 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 4 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 4 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 2 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 2 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 3
@@ -180,9 +178,9 @@ sizeBeforeInsert = size(super.model.rpar.objs);
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 5 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 5 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 0
 super.model.rpar = d;
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
@@ -195,7 +193,7 @@ Xcos trace:   propertyUpdated( 1 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 4 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 4 , BLOCK ) : 1
 Xcos info:    objectCreated( 6 , BLOCK )
 Xcos info:    objectCloned( 4 , 6 , BLOCK )
 Xcos trace:   propertyUpdated( 6 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -227,13 +225,13 @@ Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 6 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 6 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 1 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 5 , BLOCK )
 Xcos trace:   propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 6 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 1 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 4 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 4 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 2 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 2 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 3
@@ -255,9 +253,9 @@ sizeAfterInsert  = size(super.model.rpar.objs);
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
 assert_checkequal(sizeBeforeInsert, 1);
 assert_checkequal(sizeAfterInsert,  1);
 // Check consecutive initialization of a SuperBlock in a diagram
@@ -334,24 +332,23 @@ Xcos debug:   propertyUpdated( 9 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 9 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 8 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   objectReferenced( 8 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 8 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 8 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 7 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 0
 // 'superD' is a diagram containing a SuperBlock
 sBeforeInsert = size(superD.objs(1).model.rpar.objs);
+Xcos trace:   objectReferenced( 8 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 8 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 8 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 8 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 9 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 9 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 9 , BLOCK ) : 0
 superD.objs(1) = super;
-Xcos trace:   objectReferenced( 8 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 8 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 0
 Xcos info:    objectCreated( 10 , BLOCK )
 Xcos info:    objectCloned( 1 , 10 , BLOCK )
 Xcos trace:   propertyUpdated( 10 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -413,31 +410,36 @@ Xcos debug:   propertyUpdated( 11 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 11 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 10 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 7 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 8 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 9 , BLOCK )
+Xcos info:    objectDeleted( 8 , BLOCK )
 Xcos debug:   propertyUpdated( 10 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 10 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 7 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 0
 sAfterInsert  = size(superD.objs(1).model.rpar.objs);
+Xcos trace:   objectReferenced( 10 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 10 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
 assert_checkequal(sizeBeforeInsert, 1);
 assert_checkequal(sizeAfterInsert,  1);
 // Check that all the model items are freed
 clear
 Xcos debug:   propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 4 , BLOCK ) : 0
+Xcos info:    objectDeleted( 4 , BLOCK )
 Xcos info:    objectDeleted( 2 , DIAGRAM )
 Xcos info:    objectDeleted( 3 , BLOCK )
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 1 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 6 , BLOCK )
 Xcos info:    objectDeleted( 1 , BLOCK )
 Xcos debug:   propertyUpdated( 10 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 10 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 11 , BLOCK )
+Xcos info:    objectDeleted( 10 , BLOCK )
 Xcos info:    objectDeleted( 7 , DIAGRAM )
index b9af819..31c444a 100644 (file)
@@ -180,13 +180,12 @@ Xcos trace:   propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 8 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 7 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 7 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 7 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 7 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 2 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
 d.objs(2) = l;
-Xcos trace:   objectReferenced( 7 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
 Xcos info:    objectCreated( 10 , LINK )
 Xcos info:    objectCloned( 6 , 10 , LINK )
 Xcos trace:   propertyUpdated( 10 , LINK , COLOR ) : NO_CHANGES
@@ -201,7 +200,6 @@ Xcos trace:   propertyUpdated( 10 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 10 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 10 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 10 , LINK ) : 1
-Xcos trace:   objectReferenced( 10 , LINK ) : 2
 Xcos debug:   propertyUpdated( 10 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 10 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -211,32 +209,32 @@ Xcos trace:   propertyUpdated( 8 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 8 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 10 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 2 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 10 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
 assert_checkequal(d.objs(1).graphics.pout, 2);
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
 Xcos trace:   objectReferenced( 7 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 10 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 10 , LINK ) : 1
-Xcos trace:   objectReferenced( 7 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
 assert_checkequal(d.objs(1).graphics.pin,  2);
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
 Xcos trace:   objectReferenced( 7 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 10 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 10 , LINK ) : 1
-Xcos trace:   objectReferenced( 7 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
 assert_checkequal(d.objs(2).from, [1 1 0]);
-Xcos trace:   objectReferenced( 7 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 10 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 10 , LINK ) : 1
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
 assert_checkequal(d.objs(2).to,   [1 1 1]);
-Xcos trace:   objectReferenced( 7 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 10 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 10 , LINK ) : 1
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
 sb.model.rpar = d;
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
@@ -247,8 +245,8 @@ Xcos trace:   propertyUpdated( 1 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 1 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 7 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 10 , LINK ) : 2
+Xcos trace:   objectReferenced( 7 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 10 , LINK ) : 1
 Xcos info:    objectCreated( 11 , BLOCK )
 Xcos info:    objectCloned( 7 , 11 , BLOCK )
 Xcos trace:   propertyUpdated( 11 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -317,20 +315,18 @@ Xcos trace:   propertyUpdated( 14 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 14 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 14 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 14 , LINK ) : 1
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
 Xcos trace:   propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 11 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 14 , LINK ) : 2
+Xcos trace:   objectReferenced( 14 , LINK ) : 1
 Xcos trace:   propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 14 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 12 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 13 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 1 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 14 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 10 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
 Xcos trace:   objectReferenced( 2 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 2 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 3
@@ -352,42 +348,42 @@ assert_checkequal(sb.model.rpar.objs(1).graphics.pout, 2);
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 14 , LINK ) : 2
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 14 , LINK ) : 1
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
 assert_checkequal(sb.model.rpar.objs(1).graphics.pin,  2);
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 14 , LINK ) : 2
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 14 , LINK ) : 1
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
 assert_checkequal(sb.model.rpar.objs(2).from, [1 1 0]);
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 14 , LINK ) : 2
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 14 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
 assert_checkequal(sb.model.rpar.objs(2).to,   [1 1 1]);
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 14 , LINK ) : 2
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 14 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
 // Main diagram
 scs_m = scicos_diagram();
 Xcos info:    objectCreated( 15 , DIAGRAM )
@@ -503,107 +499,106 @@ Xcos debug:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 16 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 16 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 16 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 15 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.rpar.objs(1).graphics.pout, 2);
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.rpar.objs(1).graphics.pin,  2);
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.rpar.objs(2).from, [1 1 0]);
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
 assert_checkequal(scs_m.objs(1).model.rpar.objs(2).to,   [1 1 1]);
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
 l = list(1); l(1) = scs_m; // Cloning 'scs_m'
 Xcos info:    objectDeleted( 6 , LINK )
 assert_checkequal(l(1).objs(1).model.rpar.objs(1).graphics.pout, 2);
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
 assert_checkequal(l(1).objs(1).model.rpar.objs(1).graphics.pin,  2);
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
 assert_checkequal(l(1).objs(1).model.rpar.objs(2).from, [1 1 0]);
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
 assert_checkequal(l(1).objs(1).model.rpar.objs(2).to,   [1 1 1]);
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
 // Check that all the model items are freed
@@ -621,14 +616,56 @@ Xcos info:    objectDeleted( 5 , PORT )
 Xcos info:    objectDeleted( 3 , BLOCK )
 Xcos debug:   propertyUpdated( 7 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 10 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 7 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 10 , LINK ) : 0
+Xcos debug:   propertyUpdated( 7 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 7 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 10 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 8 , PORT )
+Xcos trace:   propertyUpdated( 7 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 7 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 7 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 7 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 10 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 9 , PORT )
+Xcos info:    objectDeleted( 7 , BLOCK )
+Xcos info:    objectDeleted( 10 , LINK )
 Xcos info:    objectDeleted( 2 , DIAGRAM )
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 14 , LINK ) : 0
+Xcos debug:   propertyUpdated( 1 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 11 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 11 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 14 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 12 , PORT )
+Xcos trace:   propertyUpdated( 11 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 11 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 14 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 13 , PORT )
+Xcos info:    objectDeleted( 11 , BLOCK )
+Xcos debug:   propertyUpdated( 1 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 14 , LINK )
 Xcos info:    objectDeleted( 1 , BLOCK )
 Xcos debug:   propertyUpdated( 16 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 16 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 17 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 17 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 20 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 18 , PORT )
+Xcos trace:   propertyUpdated( 17 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 17 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 20 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 19 , PORT )
+Xcos info:    objectDeleted( 17 , BLOCK )
+Xcos debug:   propertyUpdated( 16 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 20 , LINK )
+Xcos info:    objectDeleted( 16 , BLOCK )
 Xcos info:    objectDeleted( 15 , DIAGRAM )
 // Relaunch Xcos librairy
 loadXcosLibs();
@@ -858,13 +895,12 @@ Xcos trace:   propertyUpdated( 34 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 33 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 32 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 32 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 32 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 32 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 32 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
 d.objs(2) = Sum2;
-Xcos trace:   objectReferenced( 32 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 32 , BLOCK ) : 1
 Xcos info:    objectCreated( 36 , BLOCK )
 Xcos info:    objectCloned( 27 , 36 , BLOCK )
 Xcos debug:   propertyUpdated( 36 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
@@ -932,15 +968,14 @@ Xcos trace:   propertyUpdated( 38 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 36 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 36 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 36 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
 d.objs(3) = l;
-Xcos trace:   objectReferenced( 32 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
 Xcos info:    objectCreated( 40 , LINK )
 Xcos info:    objectCloned( 31 , 40 , LINK )
 Xcos trace:   propertyUpdated( 40 , LINK , COLOR ) : NO_CHANGES
@@ -955,7 +990,6 @@ Xcos trace:   propertyUpdated( 40 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 40 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 40 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 40 , LINK ) : 1
-Xcos trace:   objectReferenced( 40 , LINK ) : 2
 Xcos debug:   propertyUpdated( 40 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 40 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -965,59 +999,59 @@ Xcos trace:   propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 40 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 40 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 40 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
 assert_checkequal(d.objs(1).graphics.pin, [0 ; 0]);
+Xcos trace:   objectReferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 40 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 40 , LINK ) : 0
 Xcos trace:   objectReferenced( 32 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 40 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 40 , LINK ) : 1
-Xcos trace:   objectReferenced( 32 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
 assert_checkequal(d.objs(1).graphics.pout, 3);
+Xcos trace:   objectReferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 40 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 40 , LINK ) : 0
 Xcos trace:   objectReferenced( 32 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 40 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 40 , LINK ) : 1
-Xcos trace:   objectReferenced( 32 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
 assert_checkequal(d.objs(2).graphics.pin, [3 ; 0]);
-Xcos trace:   objectReferenced( 32 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 40 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 40 , LINK ) : 0
 Xcos trace:   objectReferenced( 36 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 40 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 40 , LINK ) : 1
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
 assert_checkequal(d.objs(2).graphics.pout, 0);
-Xcos trace:   objectReferenced( 32 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 40 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 40 , LINK ) : 0
 Xcos trace:   objectReferenced( 36 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 40 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 40 , LINK ) : 1
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
 assert_checkequal(d.objs(3).from, [1 1 0]);
-Xcos trace:   objectReferenced( 32 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 40 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 40 , LINK ) : 1
+Xcos trace:   objectReferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 40 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 40 , LINK ) : 0
 assert_checkequal(d.objs(3).to, [2 1 1]);
-Xcos trace:   objectReferenced( 32 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 40 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 40 , LINK ) : 1
+Xcos trace:   objectReferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 40 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 40 , LINK ) : 0
 sb.model.rpar = d;
 Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
@@ -1028,9 +1062,9 @@ Xcos trace:   propertyUpdated( 21 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 21 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 21 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 36 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 40 , LINK ) : 2
+Xcos trace:   objectReferenced( 32 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 36 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 40 , LINK ) : 1
 Xcos info:    objectCreated( 41 , BLOCK )
 Xcos info:    objectCloned( 32 , 41 , BLOCK )
 Xcos debug:   propertyUpdated( 41 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
@@ -1180,26 +1214,23 @@ Xcos trace:   propertyUpdated( 49 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 49 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 49 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos trace:   objectReferenced( 41 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 45 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 49 , LINK ) : 1
-Xcos trace:   objectReferenced( 41 , BLOCK ) : 2
 Xcos trace:   propertyUpdated( 41 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 41 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 45 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 45 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 45 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 45 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 49 , LINK ) : 2
+Xcos trace:   objectReferenced( 49 , LINK ) : 1
 Xcos trace:   propertyUpdated( 49 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 49 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 46 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 21 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 45 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 49 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 40 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 45 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 49 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 40 , LINK ) : 0
 Xcos trace:   objectReferenced( 22 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 22 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
@@ -1417,94 +1448,93 @@ Xcos trace:   propertyUpdated( 54 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 55 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 51 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 51 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 51 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 50 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.rpar.objs(1).graphics.pin, [0 ; 0]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.rpar.objs(1).graphics.pout, 3);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.rpar.objs(2).graphics.pin, [3 ; 0]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.rpar.objs(2).graphics.pout, 0);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.rpar.objs(3).from, [1 1 0]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 assert_checkequal(scs_m.objs(1).model.rpar.objs(3).to, [2 1 1]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
@@ -1512,88 +1542,88 @@ l = list(1); l(1) = scs_m; // Cloning 'scs_m'
 Xcos info:    objectDeleted( 31 , LINK )
 // Check connections
 assert_checkequal(l(1).objs(1).model.rpar.objs(1).graphics.pin, [0 ; 0]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 assert_checkequal(l(1).objs(1).model.rpar.objs(1).graphics.pout, 3);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 assert_checkequal(l(1).objs(1).model.rpar.objs(2).graphics.pin, [3 ; 0]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 assert_checkequal(l(1).objs(1).model.rpar.objs(2).graphics.pout, 0);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 assert_checkequal(l(1).objs(1).model.rpar.objs(3).from, [1 1 0]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 assert_checkequal(l(1).objs(1).model.rpar.objs(3).to, [2 1 1]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
@@ -1601,88 +1631,88 @@ Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 l2 = list(1); l2(1) = l(1); // Cloning 'l(1)', which is 'scs_m's clone
 // Check connections
 assert_checkequal(l2(1).objs(1).model.rpar.objs(1).graphics.pin, [0 ; 0]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 assert_checkequal(l2(1).objs(1).model.rpar.objs(1).graphics.pout, 3);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 assert_checkequal(l2(1).objs(1).model.rpar.objs(2).graphics.pin, [3 ; 0]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 assert_checkequal(l2(1).objs(1).model.rpar.objs(2).graphics.pout, 0);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 assert_checkequal(l2(1).objs(1).model.rpar.objs(3).from, [1 1 0]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
 assert_checkequal(l2(1).objs(1).model.rpar.objs(3).to,   [2 1 1]);
+Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 56 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 60 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 56 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 60 , LINK ) : 0
@@ -1723,16 +1753,121 @@ Xcos info:    objectDeleted( 27 , BLOCK )
 Xcos debug:   propertyUpdated( 32 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 36 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 40 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 32 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 36 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 40 , LINK ) : 0
+Xcos debug:   propertyUpdated( 32 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 32 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 32 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 32 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 33 , PORT )
+Xcos debug:   propertyUpdated( 32 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 32 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 32 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 32 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 34 , PORT )
+Xcos trace:   propertyUpdated( 32 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 32 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 32 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 32 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 40 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 35 , PORT )
+Xcos info:    objectDeleted( 32 , BLOCK )
+Xcos debug:   propertyUpdated( 36 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 36 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 36 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 36 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 40 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 37 , PORT )
+Xcos debug:   propertyUpdated( 36 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 36 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 36 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 36 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 38 , PORT )
+Xcos trace:   propertyUpdated( 36 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 36 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 36 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 36 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 39 , PORT )
+Xcos info:    objectDeleted( 36 , BLOCK )
+Xcos info:    objectDeleted( 40 , LINK )
 Xcos info:    objectDeleted( 22 , DIAGRAM )
-Xcos trace:   objectUnreferenced( 41 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 45 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 49 , LINK ) : 0
+Xcos debug:   propertyUpdated( 21 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 41 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 41 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 42 , PORT )
+Xcos debug:   propertyUpdated( 41 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 41 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 43 , PORT )
+Xcos trace:   propertyUpdated( 41 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 41 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 41 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 41 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 44 , PORT )
+Xcos info:    objectDeleted( 41 , BLOCK )
+Xcos debug:   propertyUpdated( 21 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 45 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 46 , PORT )
+Xcos debug:   propertyUpdated( 45 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 47 , PORT )
+Xcos trace:   propertyUpdated( 45 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 45 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 45 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 45 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 48 , PORT )
+Xcos info:    objectDeleted( 45 , BLOCK )
+Xcos debug:   propertyUpdated( 21 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 49 , LINK )
 Xcos info:    objectDeleted( 21 , BLOCK )
 Xcos debug:   propertyUpdated( 51 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 51 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 52 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 52 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 52 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 52 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 53 , PORT )
+Xcos debug:   propertyUpdated( 52 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 52 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 52 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 52 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 54 , PORT )
+Xcos trace:   propertyUpdated( 52 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 52 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 52 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 52 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 60 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 55 , PORT )
+Xcos info:    objectDeleted( 52 , BLOCK )
+Xcos debug:   propertyUpdated( 51 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 56 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 56 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 60 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 57 , PORT )
+Xcos debug:   propertyUpdated( 56 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 56 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 58 , PORT )
+Xcos trace:   propertyUpdated( 56 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 56 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 56 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 56 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 59 , PORT )
+Xcos info:    objectDeleted( 56 , BLOCK )
+Xcos debug:   propertyUpdated( 51 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 60 , LINK )
+Xcos info:    objectDeleted( 51 , BLOCK )
 Xcos info:    objectDeleted( 50 , DIAGRAM )
 // Relaunch Xcos librairy
 loadXcosLibs();
@@ -1938,12 +2073,11 @@ Xcos trace:   propertyUpdated( 66 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 67 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 66 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 66 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 66 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 66 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 66 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 61 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 66 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 66 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 66 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 66 , BLOCK ) : 1
 Xcos info:    objectCreated( 68 , BLOCK )
 Xcos info:    objectCloned( 64 , 68 , BLOCK )
 Xcos trace:   propertyUpdated( 68 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -1987,12 +2121,11 @@ Xcos trace:   propertyUpdated( 68 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 69 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 68 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 68 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 68 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 68 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 68 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 61 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 68 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 66 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 68 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 66 , BLOCK ) : 0
 Xcos info:    objectCreated( 70 , BLOCK )
 Xcos trace:   objectReferenced( 70 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 70 , BLOCK , GEOMETRY ) : NO_CHANGES
@@ -2026,8 +2159,8 @@ Xcos trace:   propertyUpdated( 70 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 70 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 70 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 70 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 66 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 68 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 66 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 68 , BLOCK ) : 1
 Xcos info:    objectCreated( 73 , BLOCK )
 Xcos info:    objectCloned( 66 , 73 , BLOCK )
 Xcos trace:   propertyUpdated( 73 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -2114,18 +2247,16 @@ Xcos trace:   propertyUpdated( 76 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 74 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 75 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 73 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 73 , BLOCK ) : 2
 Xcos trace:   propertyUpdated( 73 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 73 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 75 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 75 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 75 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 70 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 73 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 66 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 68 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 73 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 66 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 68 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 61 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 61 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 70 , BLOCK ) : 3
@@ -2158,8 +2289,18 @@ Xcos info:    objectDeleted( 65 , PORT )
 Xcos info:    objectDeleted( 64 , BLOCK )
 Xcos debug:   propertyUpdated( 66 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 68 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 66 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 68 , BLOCK ) : 0
+Xcos trace:   propertyUpdated( 66 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 66 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 66 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 66 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 67 , PORT )
+Xcos info:    objectDeleted( 66 , BLOCK )
+Xcos debug:   propertyUpdated( 68 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 68 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 68 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 68 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 69 , PORT )
+Xcos info:    objectDeleted( 68 , BLOCK )
 Xcos info:    objectDeleted( 61 , DIAGRAM )
 scs_m = scicos_diagram();
 Xcos info:    objectCreated( 77 , DIAGRAM )
@@ -2319,21 +2460,20 @@ Xcos trace:   propertyUpdated( 80 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 82 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 78 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   objectReferenced( 78 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 78 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 78 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 78 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 77 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 78 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 78 , BLOCK ) : 0
 l = list(1); l(1) = scs_m; // Cloning 'scs_m'
 assert_checkequal(size(l(1).objs(1).model.rpar.objs), 2); // Blocks "IN_f" and "OUT_f"
+Xcos trace:   objectReferenced( 78 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 78 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 78 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 78 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 78 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 78 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 78 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 81 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 83 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 78 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 78 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 81 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 83 , BLOCK ) : 0
 // Check that all the model items are freed
@@ -2348,9 +2488,45 @@ Xcos debug:   propertyUpdated( 70 , BLOCK , OUTPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 70 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 70 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos info:    objectDeleted( 72 , PORT )
-Xcos trace:   objectUnreferenced( 73 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 70 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 73 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 73 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 73 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 73 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 74 , PORT )
+Xcos info:    objectDeleted( 73 , BLOCK )
+Xcos debug:   propertyUpdated( 70 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 75 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 75 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 75 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 75 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 76 , PORT )
+Xcos info:    objectDeleted( 75 , BLOCK )
 Xcos info:    objectDeleted( 70 , BLOCK )
 Xcos debug:   propertyUpdated( 78 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 78 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 78 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 78 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 78 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 78 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 79 , PORT )
+Xcos trace:   propertyUpdated( 78 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 78 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 78 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 78 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 80 , PORT )
+Xcos debug:   propertyUpdated( 78 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 81 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 81 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 81 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 81 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 82 , PORT )
+Xcos info:    objectDeleted( 81 , BLOCK )
+Xcos debug:   propertyUpdated( 78 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 83 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 83 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 83 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 83 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 84 , PORT )
+Xcos info:    objectDeleted( 83 , BLOCK )
+Xcos info:    objectDeleted( 78 , BLOCK )
 Xcos info:    objectDeleted( 77 , DIAGRAM )
index 3244045..a3a524a 100644 (file)
@@ -209,13 +209,12 @@ Xcos trace:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 12 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 12 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 12 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 12 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 12 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 12 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 12 , BLOCK ) : 0
 scs_m.objs(2) = Sum2;
-Xcos trace:   objectReferenced( 12 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 12 , BLOCK ) : 1
 Xcos info:    objectCreated( 16 , BLOCK )
 Xcos info:    objectCloned( 6 , 16 , BLOCK )
 Xcos debug:   propertyUpdated( 16 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
@@ -283,15 +282,14 @@ Xcos trace:   propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 16 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 16 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 16 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 12 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 12 , BLOCK ) : 0
 scs_m.objs(3) = lnk1;
-Xcos trace:   objectReferenced( 12 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 12 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
 Xcos info:    objectCreated( 20 , LINK )
 Xcos info:    objectCloned( 10 , 20 , LINK )
 Xcos trace:   propertyUpdated( 20 , LINK , COLOR ) : NO_CHANGES
@@ -306,7 +304,6 @@ Xcos trace:   propertyUpdated( 20 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 20 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 20 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 20 , LINK ) : 1
-Xcos trace:   objectReferenced( 20 , LINK ) : 2
 Xcos debug:   propertyUpdated( 20 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 20 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -316,13 +313,13 @@ Xcos trace:   propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 20 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 12 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 12 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 scs_m.objs(4) = lnk2;
-Xcos trace:   objectReferenced( 12 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 20 , LINK ) : 2
+Xcos trace:   objectReferenced( 12 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 20 , LINK ) : 1
 Xcos info:    objectCreated( 21 , LINK )
 Xcos info:    objectCloned( 11 , 21 , LINK )
 Xcos trace:   propertyUpdated( 21 , LINK , COLOR ) : NO_CHANGES
@@ -337,66 +334,101 @@ Xcos trace:   propertyUpdated( 21 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 21 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 21 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 21 , LINK ) : 1
-Xcos trace:   objectReferenced( 21 , LINK ) : 2
 Xcos debug:   propertyUpdated( 21 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 21 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 21 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 21 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 21 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 12 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 20 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 21 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 12 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
 // Consecutively delete the diagram objects,
 // check that they were replaced with "Deleted" mlists
 DeletedObj = mlist("Deleted");
 scs_m.objs(1) = DeletedObj;
-Xcos trace:   objectReferenced( 12 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 20 , LINK ) : 2
-Xcos trace:   objectReferenced( 21 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 12 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 12 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 20 , LINK ) : 1
+Xcos trace:   objectReferenced( 21 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 12 , BLOCK ) : 0
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 21 , LINK ) : 1
+Xcos debug:   propertyUpdated( 12 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 12 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 12 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 12 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 13 , PORT )
+Xcos debug:   propertyUpdated( 12 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 12 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 12 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 12 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 14 , PORT )
+Xcos trace:   propertyUpdated( 12 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 12 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 12 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 12 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 20 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 15 , PORT )
+Xcos info:    objectDeleted( 12 , BLOCK )
+Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 21 , LINK ) : 0
 assert_checkequal(scs_m.objs(1), DeletedObj);
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 20 , LINK ) : 2
-Xcos trace:   objectReferenced( 21 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 21 , LINK ) : 1
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 20 , LINK ) : 1
+Xcos trace:   objectReferenced( 21 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 21 , LINK ) : 0
 scs_m.objs(2) = DeletedObj;
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 20 , LINK ) : 2
-Xcos trace:   objectReferenced( 21 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 20 , LINK ) : 1
+Xcos trace:   objectReferenced( 21 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 21 , LINK ) : 1
+Xcos debug:   propertyUpdated( 16 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 16 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 20 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 17 , PORT )
+Xcos debug:   propertyUpdated( 16 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 16 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 18 , PORT )
+Xcos trace:   propertyUpdated( 16 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 16 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 19 , PORT )
+Xcos info:    objectDeleted( 16 , BLOCK )
+Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 21 , LINK ) : 0
 assert_checkequal(scs_m.objs(2), DeletedObj);
-Xcos trace:   objectReferenced( 20 , LINK ) : 2
-Xcos trace:   objectReferenced( 21 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 20 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 21 , LINK ) : 1
+Xcos trace:   objectReferenced( 20 , LINK ) : 1
+Xcos trace:   objectReferenced( 21 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 21 , LINK ) : 0
 scs_m.objs(3) = DeletedObj;
-Xcos trace:   objectReferenced( 20 , LINK ) : 2
-Xcos trace:   objectReferenced( 21 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 20 , LINK ) : 1
+Xcos trace:   objectReferenced( 20 , LINK ) : 1
+Xcos trace:   objectReferenced( 21 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 20 , LINK ) : 0
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 21 , LINK ) : 1
+Xcos info:    objectDeleted( 20 , LINK )
+Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos trace:   objectUnreferenced( 21 , LINK ) : 0
 assert_checkequal(scs_m.objs(3), DeletedObj);
-Xcos trace:   objectReferenced( 21 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 21 , LINK ) : 1
+Xcos trace:   objectReferenced( 21 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 21 , LINK ) : 0
 scs_m.objs(4) = DeletedObj;
-Xcos trace:   objectReferenced( 21 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 21 , LINK ) : 1
+Xcos trace:   objectReferenced( 21 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 21 , LINK ) : 0
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 21 , LINK )
+Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
 assert_checkequal(scs_m.objs(4), DeletedObj);
 // Test that all objects are simultaneously "deleted"
 assert_checkequal(scs_m.objs(1), DeletedObj);
@@ -705,13 +737,12 @@ Xcos trace:   propertyUpdated( 39 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 38 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 37 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 37 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 37 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
 scs_m.objs(2) = lnk1;
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
 Xcos info:    objectCreated( 41 , LINK )
 Xcos info:    objectCloned( 35 , 41 , LINK )
 Xcos trace:   propertyUpdated( 41 , LINK , COLOR ) : NO_CHANGES
@@ -726,7 +757,6 @@ Xcos trace:   propertyUpdated( 41 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 41 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 41 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 41 , LINK ) : 1
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
 Xcos debug:   propertyUpdated( 41 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 41 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 40 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -736,11 +766,11 @@ Xcos trace:   propertyUpdated( 38 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 38 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 41 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
 scs_m.objs(3) = Sum2; // The one to delete
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , LINK ) : 1
 Xcos info:    objectCreated( 42 , BLOCK )
 Xcos info:    objectCloned( 27 , 42 , BLOCK )
 Xcos debug:   propertyUpdated( 42 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
@@ -808,17 +838,16 @@ Xcos trace:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 43 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 42 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 42 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 42 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 42 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 42 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
 scs_m.objs(4) = Sum3;
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
-Xcos trace:   objectReferenced( 42 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , LINK ) : 1
+Xcos trace:   objectReferenced( 42 , BLOCK ) : 1
 Xcos info:    objectCreated( 46 , BLOCK )
 Xcos info:    objectCloned( 31 , 46 , BLOCK )
 Xcos debug:   propertyUpdated( 46 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
@@ -886,19 +915,18 @@ Xcos trace:   propertyUpdated( 48 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 47 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 46 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 46 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 46 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 46 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 46 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 0
 scs_m.objs(5) = lnk2;
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
-Xcos trace:   objectReferenced( 42 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 46 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , LINK ) : 1
+Xcos trace:   objectReferenced( 42 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 46 , BLOCK ) : 1
 Xcos info:    objectCreated( 50 , LINK )
 Xcos info:    objectCloned( 36 , 50 , LINK )
 Xcos trace:   propertyUpdated( 50 , LINK , COLOR ) : NO_CHANGES
@@ -913,7 +941,6 @@ Xcos trace:   propertyUpdated( 50 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 50 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 50 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 50 , LINK ) : 1
-Xcos trace:   objectReferenced( 50 , LINK ) : 2
 Xcos debug:   propertyUpdated( 50 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 50 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 49 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -923,173 +950,102 @@ Xcos trace:   propertyUpdated( 47 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 47 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 50 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 50 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 50 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 0
 // Start by replacing the object with a "Deleted" mlist
 DeletedObj = mlist("Deleted");
 scs_m.objs(3) = DeletedObj;
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
-Xcos trace:   objectReferenced( 42 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 46 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 50 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , LINK ) : 1
+Xcos trace:   objectReferenced( 42 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 46 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 50 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 42 , BLOCK ) : 0
 Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 50 , LINK ) : 1
+Xcos debug:   propertyUpdated( 42 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 42 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 43 , PORT )
+Xcos debug:   propertyUpdated( 42 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 42 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 44 , PORT )
+Xcos trace:   propertyUpdated( 42 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 42 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 42 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 42 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 45 , PORT )
+Xcos info:    objectDeleted( 42 , BLOCK )
+Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 50 , LINK ) : 0
 assert_checkequal(scs_m.objs(3), DeletedObj);
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
-Xcos trace:   objectReferenced( 46 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 50 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 50 , LINK ) : 1
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , LINK ) : 1
+Xcos trace:   objectReferenced( 46 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 50 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 50 , LINK ) : 0
 // Effectively remove the object
 scs_m.objs(3) = null();
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , LINK ) : 1
+Xcos trace:   objectReferenced( 46 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 50 , LINK ) : 1
 Xcos trace:   objectReferenced( 46 , BLOCK ) : 2
+Xcos trace:   propertyUpdated( 46 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   objectReferenced( 50 , LINK ) : 2
-Xcos info:    objectCreated( 51 , BLOCK )
-Xcos info:    objectCloned( 46 , 51 , BLOCK )
-Xcos debug:   propertyUpdated( 51 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-Xcos trace:   propertyUpdated( 51 , BLOCK , DESCRIPTION ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 51 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos debug:   propertyUpdated( 51 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-Xcos trace:   propertyUpdated( 51 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , STYLE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 51 , BLOCK , GEOMETRY ) : SUCCESS
-Xcos debug:   propertyUpdated( 51 , BLOCK , EXPRS ) : SUCCESS
-Xcos trace:   propertyUpdated( 51 , BLOCK , STATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , DSTATE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , ODSTATE ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 51 , BLOCK , RPAR ) : SUCCESS
-Xcos trace:   propertyUpdated( 51 , BLOCK , OPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , EQUATIONS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 51 , BLOCK , SIM_DEP_UT ) : SUCCESS
-Xcos trace:   propertyUpdated( 51 , BLOCK , NZCROSS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , NMODE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , IPAR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , CONTEXT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos info:    objectCreated( 52 , PORT )
-Xcos info:    objectCloned( 47 , 52 , PORT )
-Xcos trace:   propertyUpdated( 52 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 52 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 52 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 52 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 52 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 52 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 52 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 52 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 52 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos info:    objectCreated( 53 , PORT )
-Xcos info:    objectCloned( 48 , 53 , PORT )
-Xcos trace:   propertyUpdated( 53 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 53 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 53 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 53 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 53 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 53 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 53 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 53 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 53 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 51 , BLOCK , INPUTS ) : SUCCESS
-Xcos info:    objectCreated( 54 , PORT )
-Xcos info:    objectCloned( 49 , 54 , PORT )
-Xcos trace:   propertyUpdated( 54 , PORT , FIRING ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 54 , PORT , PORT_KIND ) : SUCCESS
-Xcos trace:   propertyUpdated( 54 , PORT , IMPLICIT ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , PORT , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , PORT , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , PORT , LABEL ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 54 , PORT , DATATYPE ) : SUCCESS
-Xcos debug:   propertyUpdated( 54 , PORT , SOURCE_BLOCK ) : SUCCESS
-Xcos trace:   propertyUpdated( 54 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 51 , BLOCK , OUTPUTS ) : SUCCESS
-Xcos trace:   propertyUpdated( 51 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 54 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 53 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 52 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 51 , BLOCK , CHILDREN ) : NO_CHANGES
-Xcos info:    objectCreated( 55 , LINK )
-Xcos info:    objectCloned( 50 , 55 , LINK )
-Xcos trace:   propertyUpdated( 55 , LINK , COLOR ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , LINK , KIND ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , LINK , DESCRIPTION ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , LINK , UID ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , LINK , STYLE ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , LINK , CONTROL_POINTS ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , LINK , THICK ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-Xcos trace:   propertyUpdated( 55 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 55 , LINK , SOURCE_PORT ) : SUCCESS
-Xcos debug:   propertyUpdated( 55 , LINK , DESTINATION_PORT ) : SUCCESS
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 55 , LINK ) : 1
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 1
-Xcos debug:   propertyUpdated( 51 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 51 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 55 , LINK ) : 2
+Xcos trace:   propertyUpdated( 50 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 50 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   objectUnreferenced( 50 , LINK ) : 1
-Xcos debug:   propertyUpdated( 55 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   propertyUpdated( 55 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 50 , LINK ) : 0
 Xcos debug:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 55 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
 Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 0
-Xcos trace:   propertyUpdated( 22 , DIAGRAM , CHILDREN ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 49 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos debug:   propertyUpdated( 47 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-Xcos info:    objectDeleted( 50 , LINK )
+Xcos trace:   objectUnreferenced( 50 , LINK ) : 0
 assert_checkequal(size(scs_m.objs), 4);
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 55 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 55 , LINK ) : 1
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , LINK ) : 1
+Xcos trace:   objectReferenced( 46 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 50 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 50 , LINK ) : 0
 // The remaining diagram is not expected to stay coherent, the user should fix it by hand
 assert_checkequal(scs_m.objs(3).graphics.pin, [4; 0]);
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 55 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 55 , LINK ) : 1
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , LINK ) : 1
+Xcos trace:   objectReferenced( 46 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 50 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 50 , LINK ) : 0
+Xcos trace:   objectReferenced( 46 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(3).graphics.pout, 4);
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 55 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 55 , LINK ) : 1
-Xcos trace:   objectReferenced( 51 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 41 , LINK ) : 1
+Xcos trace:   objectReferenced( 46 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 50 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 50 , LINK ) : 0
+Xcos trace:   objectReferenced( 46 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 0
 // Check that all the model items are freed
 clear
 Xcos debug:   propertyUpdated( 23 , BLOCK , INPUTS ) : SUCCESS
@@ -1144,10 +1100,44 @@ Xcos info:    objectDeleted( 35 , LINK )
 Xcos info:    objectDeleted( 36 , LINK )
 Xcos debug:   propertyUpdated( 37 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 41 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug:   propertyUpdated( 51 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos debug:   propertyUpdated( 55 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 51 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 55 , LINK ) : 0
+Xcos debug:   propertyUpdated( 46 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+Xcos debug:   propertyUpdated( 50 , LINK , PARENT_DIAGRAM ) : SUCCESS
+Xcos debug:   propertyUpdated( 37 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 37 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 37 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 37 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 41 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 38 , PORT )
+Xcos debug:   propertyUpdated( 37 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 37 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 37 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 37 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 39 , PORT )
+Xcos trace:   propertyUpdated( 37 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 37 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 37 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 37 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 41 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 40 , PORT )
+Xcos info:    objectDeleted( 37 , BLOCK )
+Xcos info:    objectDeleted( 41 , LINK )
+Xcos debug:   propertyUpdated( 46 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 46 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 50 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 47 , PORT )
+Xcos debug:   propertyUpdated( 46 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 46 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 48 , PORT )
+Xcos trace:   propertyUpdated( 46 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 46 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 46 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 46 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 50 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 49 , PORT )
+Xcos info:    objectDeleted( 46 , BLOCK )
+Xcos info:    objectDeleted( 50 , LINK )
 Xcos info:    objectDeleted( 22 , DIAGRAM )
index 56d24ab..137bf51 100644 (file)
@@ -95,15 +95,14 @@ Xcos trace:   propertyUpdated( 3 , DIAGRAM , PROPERTIES ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 3 , DIAGRAM , CONTEXT ) : NO_CHANGES
 Xcos trace:   objectUnreferenced( 3 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 2 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 2 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 2 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 2 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 3 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 2 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 3 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
+Xcos trace:   objectUnreferenced( 2 , BLOCK ) : 0
 clear scs_m
 Xcos debug:   propertyUpdated( 2 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 2 , BLOCK ) : 0
+Xcos info:    objectDeleted( 2 , BLOCK )
 Xcos info:    objectDeleted( 3 , DIAGRAM )
 // Create a diagram containing 2 summation blocks and two links
 Sum    = BIGSOM_f("define");
@@ -479,23 +478,18 @@ Xcos trace:   propertyUpdated( 28 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 28 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 28 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 27 , LINK ) : 1
-Xcos trace:   objectReferenced( 28 , LINK ) : 1
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 17 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 17 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 21 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 24 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 24 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 27 , LINK ) : 2
+Xcos trace:   objectReferenced( 27 , LINK ) : 1
 Xcos debug:   propertyUpdated( 27 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 27 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
 Xcos debug:   propertyUpdated( 28 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 28 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 27 , LINK , SOURCE_PORT ) : NO_CHANGES
@@ -503,11 +497,11 @@ Xcos trace:   propertyUpdated( 27 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 28 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 28 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 27 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 27 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
 Xcos debug:   propertyUpdated( 16 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
  scs_m  = 
 Xcos trace:   objectReferenced( 16 , DIAGRAM ) : 1
@@ -522,31 +516,31 @@ options = tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(%t,33),[8,1
 void2 = []
 void3 = []
 doc = list()
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 27 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 27 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
 1     BIGSOM_f
 2     CSCOPE
 3     CSCOPE
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 27 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 27 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
 scs_m.objs
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 27 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 27 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
  ans  =
        ans(1)
 GUI     : BIGSOM_f
 Graphics: 
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
           orig = [0,0]
           sz = [2,3]
           exprs = "[1;1]"
@@ -564,8 +558,8 @@ Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 2
           out_label = ""
           style = ""
 Model   : 
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
           sum type: 2
           in = [-1;-1]
           in2 = [1;1]
@@ -592,8 +586,8 @@ Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 2
        ans(2)
 GUI     : CSCOPE
 Graphics: 
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
           orig = [0,0]
           sz = [2,2]
           exprs = ["1 3 5 7 9 11 13 15";"-1";"[]";"[600;400]";"-15";"15";"30";"20";"0";""]
@@ -611,8 +605,8 @@ Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
           out_label = ""
           style = ""
 Model   : 
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
           cscope type: 4
           in = -1
           in2 = 1
@@ -639,8 +633,8 @@ Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
        ans(3)
 GUI     : CSCOPE
 Graphics: 
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
           orig = [0,0]
           sz = [2,2]
           exprs = ["1 3 5 7 9 11 13 15";"-1";"[]";"[600;400]";"-15";"15";"30";"20";"0";""]
@@ -658,8 +652,8 @@ Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 2
           out_label = ""
           style = ""
 Model   : 
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
           cscope type: 4
           in = -1
           in2 = 1
@@ -703,11 +697,11 @@ Link    :
           to: 0 0 1
 // Link output port #1 of block #1 with input port #1 of block #2 thanks to lnk1
 scs_m.objs(4).from = [1 1 0]; // Link block #1
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 27 , LINK ) : 3
-Xcos trace:   objectReferenced( 28 , LINK ) : 3
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 27 , LINK ) : 2
+Xcos trace:   objectReferenced( 28 , LINK ) : 2
 Xcos info:    objectCreated( 29 , LINK )
 Xcos info:    objectCloned( 27 , 29 , LINK )
 Xcos trace:   propertyUpdated( 29 , LINK , COLOR ) : NO_CHANGES
@@ -721,10 +715,9 @@ Xcos trace:   propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 29 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 29 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 29 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 27 , LINK ) : 2
-Xcos trace:   objectReferenced( 29 , LINK ) : 1
-Xcos trace:   objectReferenced( 29 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 27 , LINK ) : 1
+Xcos trace:   objectReferenced( 29 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 27 , LINK ) : 0
 Xcos debug:   propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 29 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -732,48 +725,49 @@ Xcos debug:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 29 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos trace:   propertyUpdated( 29 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 29 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 2
-assert_checkequal(scs_m.objs(1).graphics.pout, 4);   // Check that block #1 is connected to lnk1
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 29 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 3
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 29 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 2
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 27 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 29 , LINK ) : 0
 Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-assert_checkequal(scs_m.objs(1).model.out,    -1);   // "
+assert_checkequal(scs_m.objs(1).graphics.pout, 4);   // Check that block #1 is connected to lnk1
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 29 , LINK ) : 2
+Xcos trace:   objectReferenced( 29 , LINK ) : 1
 Xcos trace:   objectReferenced( 28 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 29 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 29 , LINK ) : 0
 Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-scs_m.objs(4).to = [2 1 1];   // Link block #2
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : NO_CHANGES
+Xcos info:    objectDeleted( 27 , LINK )
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
+assert_checkequal(scs_m.objs(1).model.out,    -1);   // "
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 29 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 29 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
 Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 29 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+scs_m.objs(4).to = [2 1 1];   // Link block #2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 29 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
 Xcos info:    objectCreated( 30 , LINK )
 Xcos info:    objectCloned( 29 , 30 , LINK )
 Xcos trace:   propertyUpdated( 30 , LINK , COLOR ) : NO_CHANGES
@@ -787,79 +781,80 @@ Xcos trace:   propertyUpdated( 30 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 30 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 30 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 30 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 29 , LINK ) : 1
-Xcos trace:   objectReferenced( 30 , LINK ) : 1
-Xcos trace:   objectReferenced( 30 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 29 , LINK ) : 0
+Xcos trace:   objectReferenced( 30 , LINK ) : 1
+Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 29 , LINK )
 Xcos debug:   propertyUpdated( 30 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 30 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 30 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos trace:   propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 30 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 30 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 30 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
 assert_checkequal(scs_m.objs(4).from, [1 1 0]);
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 30 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 30 , LINK ) : 1
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 30 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 30 , LINK ) : 0
 assert_checkequal(scs_m.objs(4).to,   [2 1 1]);
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 30 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 30 , LINK ) : 1
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 30 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 30 , LINK ) : 0
 assert_checkequal(scs_m.objs(2).graphics.pin, 4);    // Check that block #2 is connected to lnk1
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 30 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 30 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
 Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 30 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 30 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(2).model.in,    -1);    // "
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 30 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 30 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
 Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 30 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 30 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
 // Disconnect the source
 scs_m.objs(4).from = [0 0 0];
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 30 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 30 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
 Xcos info:    objectCreated( 31 , LINK )
 Xcos info:    objectCloned( 30 , 31 , LINK )
 Xcos trace:   propertyUpdated( 31 , LINK , COLOR ) : NO_CHANGES
@@ -873,77 +868,79 @@ Xcos trace:   propertyUpdated( 31 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 31 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 31 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 31 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 30 , LINK ) : 1
-Xcos trace:   objectReferenced( 31 , LINK ) : 1
-Xcos trace:   objectReferenced( 31 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 30 , LINK ) : 0
+Xcos trace:   objectReferenced( 31 , LINK ) : 1
+Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos debug:   propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 30 , LINK )
 Xcos debug:   propertyUpdated( 31 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 31 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 31 , LINK , SOURCE_PORT ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 31 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 31 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 31 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
 assert_checkequal(scs_m.objs(4).from, [0 0 0]);
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 31 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 31 , LINK ) : 1
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 31 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 31 , LINK ) : 0
 assert_checkequal(scs_m.objs(4).to,   [2 1 1]);
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 31 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 31 , LINK ) : 1
-assert_checkequal(scs_m.objs(1).graphics.pout, 4);     // Check that block #1 is still connected
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 31 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 31 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 31 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 31 , LINK ) : 0
+assert_checkequal(scs_m.objs(1).graphics.pout, 4);     // Check that block #1 is still connected
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 31 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 31 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(2).graphics.pin, 4); // block #2 is still connected to the link
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 31 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 31 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
 Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 31 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 31 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
 // Disconnect the destination
 scs_m.objs(4).to = [0 0 0];
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 31 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 31 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
 Xcos info:    objectCreated( 32 , LINK )
 Xcos info:    objectCloned( 31 , 32 , LINK )
 Xcos trace:   propertyUpdated( 32 , LINK , COLOR ) : NO_CHANGES
@@ -957,40 +954,41 @@ Xcos trace:   propertyUpdated( 32 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 32 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 32 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 32 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 31 , LINK ) : 1
-Xcos trace:   objectReferenced( 32 , LINK ) : 1
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 31 , LINK ) : 0
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 31 , LINK )
 Xcos debug:   propertyUpdated( 32 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 32 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 32 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 32 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
 assert_checkequal(scs_m.objs(2).graphics.pin, 4);  // Check that block #2 is still connected
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
 Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
 // Verify that it is impossible to create event links
 scs_m.objs(5).from = [2 1 1]; // Link the input of block #2
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 28 , LINK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 28 , LINK ) : 1
 Xcos info:    objectCreated( 33 , LINK )
 Xcos info:    objectCloned( 28 , 33 , LINK )
 Xcos trace:   propertyUpdated( 33 , LINK , COLOR ) : NO_CHANGES
@@ -1004,10 +1002,10 @@ Xcos trace:   propertyUpdated( 33 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 33 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 33 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 33 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 28 , LINK ) : 1
-Xcos trace:   objectReferenced( 33 , LINK ) : 1
-Xcos trace:   objectReferenced( 33 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 28 , LINK ) : 0
+Xcos trace:   objectReferenced( 33 , LINK ) : 1
+Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 28 , LINK )
 Xcos debug:   propertyUpdated( 33 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 33 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -1015,17 +1013,17 @@ Xcos debug:   propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 33 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos trace:   propertyUpdated( 33 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 33 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
 scs_m.objs(5).to = [3 1 0];   // Try to add an event output to block #3 ; it should fail !
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 33 , LINK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 33 , LINK ) : 1
 Xcos info:    objectCreated( 34 , LINK )
 Xcos info:    objectCloned( 33 , 34 , LINK )
 Xcos trace:   propertyUpdated( 34 , LINK , COLOR ) : NO_CHANGES
@@ -1039,102 +1037,103 @@ Xcos trace:   propertyUpdated( 34 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 34 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 34 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 34 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 33 , LINK ) : 1
-Xcos trace:   objectReferenced( 34 , LINK ) : 1
-Xcos trace:   objectReferenced( 34 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
+Xcos trace:   objectReferenced( 34 , LINK ) : 1
+Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 33 , LINK )
 Xcos debug:   propertyUpdated( 34 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 34 , LINK , PARENT_BLOCK ) : NO_CHANGES
-Xcos debug:   propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos trace:   propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 34 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 34 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , LINK ) : 0
 assert_checkequal(scs_m.objs(5).from, [2 1 1]);
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 34 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 34 , LINK ) : 1
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , LINK ) : 0
 assert_checkequal(scs_m.objs(5).to,   [3 1 0]);
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 34 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 34 , LINK ) : 1
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , LINK ) : 0
 assert_checkequal(scs_m.objs(2).graphics.pein,  0);  // Check that block #2 is connected to lnk2
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , LINK ) : 0
 Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 34 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 34 , LINK ) : 1
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(2).model.evtin,    1);  // "
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , LINK ) : 0
 Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 34 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 34 , LINK ) : 1
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(3).graphics.peout, []);  // Check that block #3 is not connected to lnk2
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , LINK ) : 0
 Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 34 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 34 , LINK ) : 1
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(3).model.evtout,  []);  // "
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , LINK ) : 0
 Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 34 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 34 , LINK ) : 1
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
 // Verify that it is impossible to link two inputs or two outputs together
 scs_m.objs(5).from = [2 1 0]; // Two outputs
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 34 , LINK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , LINK ) : 1
 Xcos info:    objectCreated( 35 , LINK )
 Xcos info:    objectCloned( 34 , 35 , LINK )
 Xcos trace:   propertyUpdated( 35 , LINK , COLOR ) : NO_CHANGES
@@ -1148,24 +1147,25 @@ Xcos trace:   propertyUpdated( 35 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 35 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 35 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 35 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 34 , LINK ) : 1
-Xcos trace:   objectReferenced( 35 , LINK ) : 1
-Xcos trace:   objectReferenced( 35 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 34 , LINK ) : 0
+Xcos trace:   objectReferenced( 35 , LINK ) : 1
+Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+Xcos info:    objectDeleted( 34 , LINK )
 Xcos debug:   propertyUpdated( 35 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 35 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 35 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 35 , LINK ) : 0
 scs_m.objs(5).to = [3 1 1];   // Two inputs
-Xcos trace:   objectReferenced( 17 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 21 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 24 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 32 , LINK ) : 2
-Xcos trace:   objectReferenced( 35 , LINK ) : 2
+Xcos trace:   objectReferenced( 17 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 21 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 24 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 32 , LINK ) : 1
+Xcos trace:   objectReferenced( 35 , LINK ) : 1
 Xcos info:    objectCreated( 36 , LINK )
 Xcos info:    objectCloned( 35 , 36 , LINK )
 Xcos trace:   propertyUpdated( 36 , LINK , COLOR ) : NO_CHANGES
@@ -1179,21 +1179,21 @@ Xcos trace:   propertyUpdated( 36 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 36 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 36 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 36 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 35 , LINK ) : 1
-Xcos trace:   objectReferenced( 36 , LINK ) : 1
-Xcos trace:   objectReferenced( 36 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 35 , LINK ) : 0
+Xcos trace:   objectReferenced( 36 , LINK ) : 1
+Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 35 , LINK )
 Xcos debug:   propertyUpdated( 36 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 36 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 26 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 26 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 36 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 36 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 36 , LINK ) : 0
 //===================================================================================================
 // Test predefined link at diagram creation
 clear scs_m;
@@ -1202,11 +1202,47 @@ Xcos debug:   propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 24 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 32 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 36 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 17 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 21 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 24 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 32 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 36 , LINK ) : 0
+Xcos debug:   propertyUpdated( 17 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 17 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 18 , PORT )
+Xcos debug:   propertyUpdated( 17 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 17 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 19 , PORT )
+Xcos trace:   propertyUpdated( 17 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 17 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 17 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 20 , PORT )
+Xcos info:    objectDeleted( 17 , BLOCK )
+Xcos debug:   propertyUpdated( 21 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 21 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 21 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 21 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 22 , PORT )
+Xcos trace:   propertyUpdated( 21 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 21 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 21 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 21 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 23 , PORT )
+Xcos info:    objectDeleted( 21 , BLOCK )
+Xcos debug:   propertyUpdated( 24 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 24 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 24 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 24 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 25 , PORT )
+Xcos trace:   propertyUpdated( 24 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 24 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 24 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 24 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 36 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 26 , PORT )
+Xcos info:    objectDeleted( 24 , BLOCK )
+Xcos info:    objectDeleted( 32 , LINK )
+Xcos info:    objectDeleted( 36 , LINK )
 Xcos info:    objectDeleted( 16 , DIAGRAM )
 lnk   = scicos_link( from=[1 1 0],to=[2 1 1] );
 Xcos info:    objectCreated( 37 , LINK )
@@ -1362,15 +1398,12 @@ Xcos trace:   propertyUpdated( 46 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 46 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 46 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 39 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 46 , LINK ) : 1
-Xcos trace:   objectReferenced( 39 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 39 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 39 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 43 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 43 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 43 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 46 , LINK ) : 2
+Xcos trace:   objectReferenced( 46 , LINK ) : 1
 Xcos debug:   propertyUpdated( 46 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 46 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 42 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -1380,69 +1413,96 @@ Xcos trace:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 44 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 46 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 38 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 46 , LINK ) : 0
 Xcos debug:   propertyUpdated( 38 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
 assert_checkequal(scs_m.objs(3).from, [1 1 0]);
-Xcos trace:   objectReferenced( 39 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 43 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 46 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 1
+Xcos trace:   objectReferenced( 39 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 46 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 46 , LINK ) : 0
 assert_checkequal(scs_m.objs(3).to,   [2 1 1]);
-Xcos trace:   objectReferenced( 39 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 43 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 46 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 1
+Xcos trace:   objectReferenced( 39 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 46 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 46 , LINK ) : 0
 assert_checkequal(scs_m.objs(1).graphics.pout,  3);  // Check that block #1 is connected to lnk
+Xcos trace:   objectReferenced( 39 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 46 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 46 , LINK ) : 0
 Xcos trace:   objectReferenced( 39 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 43 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 46 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 1
-Xcos trace:   objectReferenced( 39 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.out,     -1);  // "
+Xcos trace:   objectReferenced( 39 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 46 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 46 , LINK ) : 0
 Xcos trace:   objectReferenced( 39 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 43 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 46 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 1
-Xcos trace:   objectReferenced( 39 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(2).graphics.pin,   3);  // Check that block #2 is connected to lnk
-Xcos trace:   objectReferenced( 39 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 39 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 46 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 46 , LINK ) : 0
 Xcos trace:   objectReferenced( 43 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 46 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 1
-Xcos trace:   objectReferenced( 43 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(2).model.in,      -1);  // "
-Xcos trace:   objectReferenced( 39 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 39 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 43 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 46 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 46 , LINK ) : 0
 Xcos trace:   objectReferenced( 43 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 46 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 1
-Xcos trace:   objectReferenced( 43 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
 //===================================================================================================
 // Test predefined link insertion
 clear scs_m;
 Xcos debug:   propertyUpdated( 39 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 43 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 46 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 43 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 46 , LINK ) : 0
+Xcos debug:   propertyUpdated( 39 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 39 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 39 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 39 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 40 , PORT )
+Xcos debug:   propertyUpdated( 39 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 39 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 39 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 39 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 41 , PORT )
+Xcos trace:   propertyUpdated( 39 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 39 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 39 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 39 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 46 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 42 , PORT )
+Xcos info:    objectDeleted( 39 , BLOCK )
+Xcos debug:   propertyUpdated( 43 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 43 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 46 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 44 , PORT )
+Xcos trace:   propertyUpdated( 43 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 43 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 43 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 43 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 45 , PORT )
+Xcos info:    objectDeleted( 43 , BLOCK )
+Xcos info:    objectDeleted( 46 , LINK )
 Xcos info:    objectDeleted( 38 , DIAGRAM )
 lnk   = scicos_link( from=[1 1 0],to=[2 1 1] );
 Xcos info:    objectCreated( 47 , LINK )
@@ -1586,48 +1646,46 @@ Xcos trace:   propertyUpdated( 52 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 54 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 53 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 49 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 49 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 53 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 53 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 48 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
 Xcos debug:   propertyUpdated( 48 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
 assert_checkequal(scs_m.objs(1).graphics.pout,  0);  // Check that block #1 is not connected
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.out,     -1);  // "
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(2).graphics.pin,   0);  // Check that block #2 is not connected
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(2).model.in,      -1);  // "
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
 scs_m.objs(3) = lnk;          // Add the predefined Link
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
 Xcos info:    objectCreated( 56 , LINK )
 Xcos info:    objectCloned( 47 , 56 , LINK )
 Xcos trace:   propertyUpdated( 56 , LINK , COLOR ) : NO_CHANGES
@@ -1642,7 +1700,6 @@ Xcos trace:   propertyUpdated( 56 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 56 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 56 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 56 , LINK ) : 1
-Xcos trace:   objectReferenced( 56 , LINK ) : 2
 Xcos debug:   propertyUpdated( 56 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 56 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 52 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -1652,19 +1709,19 @@ Xcos trace:   propertyUpdated( 54 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 54 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 56 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 48 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 56 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 56 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
 scs_m.objs
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 56 , LINK ) : 2
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 56 , LINK ) : 1
  ans  =
        ans(1)
 GUI     : BIGSOM_f
 Graphics: 
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
           orig = [0,0]
           sz = [2,3]
           exprs = "[1;1]"
@@ -1682,8 +1739,8 @@ Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 2
           out_label = ""
           style = ""
 Model   : 
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
           sum type: 2
           in = [-1;-1]
           in2 = [1;1]
@@ -1710,8 +1767,8 @@ Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 2
        ans(2)
 GUI     : CSCOPE
 Graphics: 
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
           orig = [0,0]
           sz = [2,2]
           exprs = ["1 3 5 7 9 11 13 15";"-1";"[]";"[600;400]";"-15";"15";"30";"20";"0";""]
@@ -1729,8 +1786,8 @@ Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 2
           out_label = ""
           style = ""
 Model   : 
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
           cscope type: 4
           in = -1
           in2 = 1
@@ -1764,67 +1821,94 @@ Link    :
           from: 1 1 0
           to: 2 1 1
 assert_checkequal(scs_m.objs(3).from, [1 1 0]);
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 56 , LINK ) : 3
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 56 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 56 , LINK ) : 1
-assert_checkequal(scs_m.objs(3).to,   [2 1 1]);
 Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 56 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 56 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 56 , LINK ) : 0
+assert_checkequal(scs_m.objs(3).to,   [2 1 1]);
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 56 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 56 , LINK ) : 0
 assert_checkequal(scs_m.objs(1).graphics.pout,  3);  // Check that block #1 is connected to lnk
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 56 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 56 , LINK ) : 0
 Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 56 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 56 , LINK ) : 1
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(1).model.out,     -1);  // "
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 56 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 56 , LINK ) : 0
 Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 56 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 56 , LINK ) : 1
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(2).graphics.pin,   3);  // Check that block #2 is connected to lnk
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 56 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 56 , LINK ) : 0
 Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 56 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 56 , LINK ) : 1
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(2).model.in,      -1);  // "
-Xcos trace:   objectReferenced( 49 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 49 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 56 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 56 , LINK ) : 0
 Xcos trace:   objectReferenced( 53 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 56 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 56 , LINK ) : 1
-Xcos trace:   objectReferenced( 53 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
 //===================================================================================================
 // Test Links insertion before Block insertion
 clear scs_m;
 Xcos debug:   propertyUpdated( 49 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 53 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 56 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 49 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 53 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 56 , LINK ) : 0
+Xcos debug:   propertyUpdated( 49 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 49 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 50 , PORT )
+Xcos debug:   propertyUpdated( 49 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 49 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 51 , PORT )
+Xcos trace:   propertyUpdated( 49 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 49 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 49 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 56 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 52 , PORT )
+Xcos info:    objectDeleted( 49 , BLOCK )
+Xcos debug:   propertyUpdated( 53 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 53 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 53 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 53 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 56 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 54 , PORT )
+Xcos trace:   propertyUpdated( 53 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 53 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 53 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 53 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 55 , PORT )
+Xcos info:    objectDeleted( 53 , BLOCK )
+Xcos info:    objectDeleted( 56 , LINK )
 Xcos info:    objectDeleted( 48 , DIAGRAM )
 lnk   = scicos_link( from=[2 1 0],to=[3 1 1] );
 Xcos info:    objectCreated( 57 , LINK )
@@ -1861,19 +1945,18 @@ Xcos trace:   propertyUpdated( 59 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 59 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 59 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 59 , LINK ) : 1
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
 Xcos debug:   propertyUpdated( 59 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 59 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 58 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
 assert_checkequal(scs_m.objs(1).from, [2 1 0]);
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
+Xcos trace:   objectReferenced( 59 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
 assert_checkequal(scs_m.objs(1).to,   [3 1 1]);
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
+Xcos trace:   objectReferenced( 59 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
 scs_m.objs(2) = Sum;          // Add the Block that lnk's 'from' points to
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
+Xcos trace:   objectReferenced( 59 , LINK ) : 1
 Xcos info:    objectCreated( 60 , BLOCK )
 Xcos info:    objectCloned( 4 , 60 , BLOCK )
 Xcos debug:   propertyUpdated( 60 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
@@ -1941,15 +2024,14 @@ Xcos trace:   propertyUpdated( 62 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 61 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 60 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 60 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 60 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 58 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
 scs_m.objs(3) = Scope1;       // Add the Block that lnk's 'to' points to
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 59 , LINK ) : 1
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
 Xcos info:    objectCreated( 64 , BLOCK )
 Xcos info:    objectCloned( 8 , 64 , BLOCK )
 Xcos debug:   propertyUpdated( 64 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
@@ -2005,17 +2087,16 @@ Xcos trace:   propertyUpdated( 66 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 65 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 64 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 64 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 64 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 64 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 58 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
 scs_m.objs
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 59 , LINK ) : 1
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 64 , BLOCK ) : 1
  ans  =
        ans(1)
 Link    :
@@ -2029,8 +2110,8 @@ Link    :
        ans(2)
 GUI     : BIGSOM_f
 Graphics: 
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
           orig = [0,0]
           sz = [2,3]
           exprs = "[1;1]"
@@ -2048,8 +2129,8 @@ Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 2
           out_label = ""
           style = ""
 Model   : 
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
           sum type: 2
           in = [-1;-1]
           in2 = [1;1]
@@ -2076,8 +2157,8 @@ Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 2
        ans(3)
 GUI     : CSCOPE
 Graphics: 
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 64 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 1
           orig = [0,0]
           sz = [2,2]
           exprs = ["1 3 5 7 9 11 13 15";"-1";"[]";"[600;400]";"-15";"15";"30";"20";"0";""]
@@ -2095,8 +2176,8 @@ Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 2
           out_label = ""
           style = ""
 Model   : 
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 64 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 1
           cscope type: 4
           in = -1
           in2 = 1
@@ -2123,58 +2204,58 @@ Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 2
 // Check that the linking has been done
 // Sum (#2 in diagram) is linked to Scope1 (#3) through lnk (#1)
 assert_checkequal(scs_m.objs(1).from, [2 1 0]);
-Xcos trace:   objectReferenced( 59 , LINK ) : 3
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 1
-assert_checkequal(scs_m.objs(1).to,   [3 1 1]);
 Xcos trace:   objectReferenced( 59 , LINK ) : 2
 Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 64 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 0
+assert_checkequal(scs_m.objs(1).to,   [3 1 1]);
+Xcos trace:   objectReferenced( 59 , LINK ) : 1
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 64 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
 assert_checkequal(scs_m.objs(2).graphics.pout,  0);
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
+Xcos trace:   objectReferenced( 59 , LINK ) : 1
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 64 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(2).model.out,     -1);
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
+Xcos trace:   objectReferenced( 59 , LINK ) : 1
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 64 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(3).graphics.pin,   0);
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 59 , LINK ) : 1
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 64 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 64 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 0
 assert_checkequal(scs_m.objs(3).model.in,      -1);
-Xcos trace:   objectReferenced( 59 , LINK ) : 2
-Xcos trace:   objectReferenced( 60 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 59 , LINK ) : 1
+Xcos trace:   objectReferenced( 60 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 64 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 64 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 64 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 0
 // Check that all the model items are freed
 clear Sum Scope1 Scope2 lnk1 lnk2 lnk scs_m
 Xcos debug:   propertyUpdated( 4 , BLOCK , INPUTS ) : SUCCESS
@@ -2221,7 +2302,32 @@ Xcos info:    objectDeleted( 57 , LINK )
 Xcos debug:   propertyUpdated( 59 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 60 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 64 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 59 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 60 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 64 , BLOCK ) : 0
+Xcos info:    objectDeleted( 59 , LINK )
+Xcos debug:   propertyUpdated( 60 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 60 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 61 , PORT )
+Xcos debug:   propertyUpdated( 60 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 60 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 62 , PORT )
+Xcos trace:   propertyUpdated( 60 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 60 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 60 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 63 , PORT )
+Xcos info:    objectDeleted( 60 , BLOCK )
+Xcos debug:   propertyUpdated( 64 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 64 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 64 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 64 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 65 , PORT )
+Xcos trace:   propertyUpdated( 64 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 64 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 64 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 64 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 66 , PORT )
+Xcos info:    objectDeleted( 64 , BLOCK )
 Xcos info:    objectDeleted( 58 , DIAGRAM )
index 17848c6..dc9ebe8 100644 (file)
@@ -138,11 +138,10 @@ Xcos trace:   propertyUpdated( 8 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 6 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 6 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
 Xcos debug:   propertyUpdated( 2 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 2 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 2 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
@@ -212,7 +211,7 @@ Xcos trace:   propertyUpdated( 10 , BLOCK , EQUATIONS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 10 , BLOCK , UID ) : NO_CHANGES
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 0
 Xcos debug:   propertyUpdated( 10 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
 Xcos info:    objectCreated( 14 , BLOCK )
 Xcos info:    objectCloned( 10 , 14 , BLOCK )
 Xcos debug:   propertyUpdated( 14 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
@@ -280,12 +279,11 @@ Xcos trace:   propertyUpdated( 16 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 14 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 14 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 14 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 14 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
 Xcos debug:   propertyUpdated( 10 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 10 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 10 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
@@ -310,8 +308,8 @@ Xcos trace:   propertyUpdated( 18 , LINK , DESCRIPTION ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 18 , LINK , THICK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 18 , LINK , COLOR ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 18 , LINK , KIND ) : NO_CHANGES
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 14 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , BLOCK ) : 1
 Xcos info:    objectCreated( 19 , LINK )
 Xcos info:    objectCloned( 18 , 19 , LINK )
 Xcos trace:   propertyUpdated( 19 , LINK , COLOR ) : NO_CHANGES
@@ -326,7 +324,6 @@ Xcos trace:   propertyUpdated( 19 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 19 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 19 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 19 , LINK ) : 1
-Xcos trace:   objectReferenced( 19 , LINK ) : 2
 Xcos debug:   propertyUpdated( 19 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 19 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -336,17 +333,17 @@ Xcos trace:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 19 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 19 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 19 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 0
 Xcos info:    objectDeleted( 18 , LINK )
 dClone = d;
 dClone.objs(1) = d.objs(1); // Perform actual cloning
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 14 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 19 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 19 , LINK ) : 1
+Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 19 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 19 , LINK ) : 0
 Xcos info:    objectCreated( 20 , DIAGRAM )
 Xcos info:    objectCloned( 1 , 20 , DIAGRAM )
 Xcos trace:   propertyUpdated( 20 , DIAGRAM , DEBUG_LEVEL ) : NO_CHANGES
@@ -584,7 +581,6 @@ Xcos trace:   propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 30 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 30 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 30 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 20 , DIAGRAM , CHILDREN ) : SUCCESS
 Xcos debug:   propertyUpdated( 21 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 21 , BLOCK , OUTPUTS ) : NO_CHANGES
@@ -605,72 +601,72 @@ Xcos info:    objectDeleted( 21 , BLOCK )
 Xcos debug:   propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 30 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 20 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 25 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 29 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
 assert_checkequal(d.objs(2).graphics.pin , [3; 0]);
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 19 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 19 , LINK ) : 0
 Xcos trace:   objectReferenced( 14 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 19 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 19 , LINK ) : 1
-Xcos trace:   objectReferenced( 14 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 0
 assert_checkequal(d.objs(2).graphics.pout,  3);
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 19 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 19 , LINK ) : 0
 Xcos trace:   objectReferenced( 14 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 19 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 19 , LINK ) : 1
-Xcos trace:   objectReferenced( 14 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 0
 assert_checkequal(d.objs(3).from, [2 1 0]);
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 14 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 19 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 19 , LINK ) : 1
+Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 19 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 19 , LINK ) : 0
 assert_checkequal(d.objs(3).to  , [2 1 1]);
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 14 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 19 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 19 , LINK ) : 1
+Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 14 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 19 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 19 , LINK ) : 0
 assert_checkequal(dClone.objs(2).graphics.pin , [3; 0]);
-Xcos trace:   objectReferenced( 30 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 30 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 25 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 29 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 29 , LINK ) : 0
 Xcos trace:   objectReferenced( 25 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 25 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 25 , BLOCK ) : 0
 assert_checkequal(dClone.objs(2).graphics.pout, 3);
-Xcos trace:   objectReferenced( 30 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 30 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 25 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 29 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 29 , LINK ) : 0
 Xcos trace:   objectReferenced( 25 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 25 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 25 , BLOCK ) : 0
 assert_checkequal(dClone.objs(3).from, [2 1 0]);
-Xcos trace:   objectReferenced( 30 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 30 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 25 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 29 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 25 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 29 , LINK ) : 0
 assert_checkequal(dClone.objs(3).to  , [2 1 1]);
-Xcos trace:   objectReferenced( 30 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 30 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 25 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 29 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 25 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 29 , LINK ) : 0
 // Check that all the model items are freed
@@ -678,14 +674,61 @@ clear
 Xcos debug:   propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 19 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 14 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 19 , LINK ) : 0
+Xcos debug:   propertyUpdated( 6 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 7 , PORT )
+Xcos debug:   propertyUpdated( 6 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 8 , PORT )
+Xcos trace:   propertyUpdated( 6 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 9 , PORT )
+Xcos info:    objectDeleted( 6 , BLOCK )
+Xcos debug:   propertyUpdated( 14 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 14 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 19 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 15 , PORT )
+Xcos debug:   propertyUpdated( 14 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 14 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 16 , PORT )
+Xcos trace:   propertyUpdated( 14 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 14 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 14 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 14 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 19 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 17 , PORT )
+Xcos info:    objectDeleted( 14 , BLOCK )
+Xcos info:    objectDeleted( 19 , LINK )
 Xcos info:    objectDeleted( 1 , DIAGRAM )
 Xcos debug:   propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 30 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 30 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 31 , PORT )
+Xcos debug:   propertyUpdated( 30 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 32 , PORT )
+Xcos trace:   propertyUpdated( 30 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 30 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 33 , PORT )
+Xcos info:    objectDeleted( 30 , BLOCK )
 Xcos debug:   propertyUpdated( 25 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 25 , BLOCK , OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 25 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
index 4f6172e..0ab27b4 100644 (file)
@@ -149,22 +149,20 @@ Xcos trace:   propertyUpdated( 7 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 7 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 7 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 5 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 7 , LINK ) : 1
-Xcos trace:   objectReferenced( 5 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 5 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 5 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 7 , LINK ) : 2
+Xcos trace:   objectReferenced( 7 , LINK ) : 1
 Xcos debug:   propertyUpdated( 7 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 7 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 7 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 7 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 4 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 7 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 7 , LINK ) : 0
 Xcos debug:   propertyUpdated( 4 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
 d.objs(2).to = [1 1 1];
-Xcos trace:   objectReferenced( 5 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 7 , LINK ) : 2
+Xcos trace:   objectReferenced( 5 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 7 , LINK ) : 1
 Xcos info:    objectCreated( 8 , LINK )
 Xcos info:    objectCloned( 7 , 8 , LINK )
 Xcos trace:   propertyUpdated( 8 , LINK , COLOR ) : NO_CHANGES
@@ -178,10 +176,10 @@ Xcos trace:   propertyUpdated( 8 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 8 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 8 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 8 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 7 , LINK ) : 1
-Xcos trace:   objectReferenced( 8 , LINK ) : 1
-Xcos trace:   objectReferenced( 8 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 7 , LINK ) : 0
+Xcos trace:   objectReferenced( 8 , LINK ) : 1
+Xcos debug:   propertyUpdated( 4 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 7 , LINK )
 Xcos debug:   propertyUpdated( 8 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 8 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 8 , LINK , SOURCE_PORT ) : NO_CHANGES
@@ -189,22 +187,22 @@ Xcos trace:   propertyUpdated( 6 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 6 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 8 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 4 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 8 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 8 , LINK ) : 0
 assert_checkequal(d.objs(1).graphics.pin,  2);
+Xcos trace:   objectReferenced( 5 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 8 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 8 , LINK ) : 0
 Xcos trace:   objectReferenced( 5 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 8 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 8 , LINK ) : 1
-Xcos trace:   objectReferenced( 5 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 0
 assert_checkequal(d.objs(1).graphics.pout, []);
+Xcos trace:   objectReferenced( 5 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 8 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 8 , LINK ) : 0
 Xcos trace:   objectReferenced( 5 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 8 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 8 , LINK ) : 1
-Xcos trace:   objectReferenced( 5 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 0
 o = Ground("define");
 Xcos info:    objectCreated( 9 , BLOCK )
 Xcos trace:   objectReferenced( 9 , BLOCK ) : 1
@@ -353,27 +351,31 @@ Xcos trace:   propertyUpdated( 15 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 15 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 15 , LINK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 13 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 13 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-Xcos trace:   objectReferenced( 15 , LINK ) : 2
+Xcos trace:   objectReferenced( 15 , LINK ) : 1
 Xcos debug:   propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 15 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 15 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 12 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 15 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 15 , LINK ) : 0
 Xcos debug:   propertyUpdated( 12 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
 Xcos debug:   propertyUpdated( 5 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 8 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 5 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 8 , LINK ) : 0
+Xcos debug:   propertyUpdated( 5 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 5 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 5 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 5 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 8 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 6 , PORT )
+Xcos info:    objectDeleted( 5 , BLOCK )
+Xcos info:    objectDeleted( 8 , LINK )
 Xcos info:    objectDeleted( 4 , DIAGRAM )
 d.objs(2).from = [1 1 1];
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 15 , LINK ) : 2
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 15 , LINK ) : 1
 Xcos info:    objectCreated( 16 , LINK )
 Xcos info:    objectCloned( 15 , 16 , LINK )
 Xcos trace:   propertyUpdated( 16 , LINK , COLOR ) : NO_CHANGES
@@ -387,10 +389,10 @@ Xcos trace:   propertyUpdated( 16 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 16 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 16 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 16 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 15 , LINK ) : 1
-Xcos trace:   objectReferenced( 16 , LINK ) : 1
-Xcos trace:   objectReferenced( 16 , LINK ) : 2
 Xcos trace:   objectUnreferenced( 15 , LINK ) : 0
+Xcos trace:   objectReferenced( 16 , LINK ) : 1
+Xcos debug:   propertyUpdated( 12 , DIAGRAM , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 15 , LINK )
 Xcos debug:   propertyUpdated( 16 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 16 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -398,28 +400,34 @@ Xcos debug:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 16 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos trace:   propertyUpdated( 16 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 12 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 16 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 16 , LINK ) : 0
 assert_checkequal(d.objs(1).graphics.pin,  2);
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 16 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 16 , LINK ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 16 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 16 , LINK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
 assert_checkequal(d.objs(1).graphics.pout, []);
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 16 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 16 , LINK ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 16 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 16 , LINK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
 // Check that all the model items are freed
 clear
 Xcos debug:   propertyUpdated( 13 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 16 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 16 , LINK ) : 0
+Xcos debug:   propertyUpdated( 13 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 16 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 14 , PORT )
+Xcos info:    objectDeleted( 13 , BLOCK )
+Xcos info:    objectDeleted( 16 , LINK )
 Xcos info:    objectDeleted( 12 , DIAGRAM )
 Xcos info:    objectDeleted( 11 , LINK )
 Xcos debug:   propertyUpdated( 9 , BLOCK , INPUTS ) : SUCCESS
index 9c8b008..3bff901 100644 (file)
@@ -252,12 +252,11 @@ Xcos trace:   propertyUpdated( 9 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 10 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 9 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 9 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 9 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 9 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 9 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 4 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 9 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 9 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 9 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 9 , BLOCK ) : 1
 Xcos info:    objectCreated( 11 , BLOCK )
 Xcos info:    objectCloned( 7 , 11 , BLOCK )
 Xcos trace:   propertyUpdated( 11 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -301,12 +300,11 @@ Xcos trace:   propertyUpdated( 11 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 12 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 11 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 11 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 4 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 9 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 9 , BLOCK ) : 0
 Xcos info:    objectCreated( 13 , BLOCK )
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
@@ -340,8 +338,8 @@ Xcos trace:   propertyUpdated( 13 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 9 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 11 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 9 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 11 , BLOCK ) : 1
 Xcos info:    objectCreated( 16 , BLOCK )
 Xcos info:    objectCloned( 9 , 16 , BLOCK )
 Xcos trace:   propertyUpdated( 16 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -428,18 +426,16 @@ Xcos trace:   propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 18 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
 Xcos trace:   propertyUpdated( 16 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 16 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 18 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 18 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 9 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 9 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 4 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 4 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
@@ -472,15 +468,25 @@ Xcos info:    objectDeleted( 8 , PORT )
 Xcos info:    objectDeleted( 7 , BLOCK )
 Xcos debug:   propertyUpdated( 9 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 9 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 11 , BLOCK ) : 0
+Xcos trace:   propertyUpdated( 9 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 9 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 9 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 9 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 10 , PORT )
+Xcos info:    objectDeleted( 9 , BLOCK )
+Xcos debug:   propertyUpdated( 11 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 11 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 12 , PORT )
+Xcos info:    objectDeleted( 11 , BLOCK )
 Xcos info:    objectDeleted( 4 , DIAGRAM )
 super.model.rpar.objs($+1) = b;
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 16 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 18 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 16 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 18 , BLOCK ) : 1
 Xcos info:    objectCreated( 20 , BLOCK )
 Xcos info:    objectCloned( 13 , 20 , BLOCK )
 Xcos trace:   propertyUpdated( 20 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -756,9 +762,6 @@ Xcos trace:   propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 31 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 29 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 31 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 20 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   propertyUpdated( 23 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 23 , BLOCK , OUTPUTS ) : SUCCESS
@@ -768,7 +771,7 @@ Xcos info:    objectDeleted( 24 , PORT )
 Xcos info:    objectDeleted( 23 , BLOCK )
 Xcos trace:   propertyUpdated( 27 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 27 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 29 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 29 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 20 , BLOCK , CHILDREN ) : SUCCESS
 Xcos debug:   propertyUpdated( 25 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 25 , BLOCK , OUTPUTS ) : NO_CHANGES
@@ -778,15 +781,15 @@ Xcos info:    objectDeleted( 26 , PORT )
 Xcos info:    objectDeleted( 25 , BLOCK )
 Xcos trace:   propertyUpdated( 29 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 29 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 31 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 31 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 31 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 31 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 20 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 31 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 31 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 13 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
@@ -801,9 +804,9 @@ Xcos trace:   propertyUpdated( 13 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 29 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 31 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 29 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 31 , BLOCK ) : 1
 Xcos info:    objectCreated( 33 , BLOCK )
 Xcos info:    objectCloned( 27 , 33 , BLOCK )
 Xcos trace:   propertyUpdated( 33 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -934,26 +937,35 @@ Xcos trace:   propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 34 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 37 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 33 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 35 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 33 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 16 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 16 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 16 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 16 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 17 , PORT )
+Xcos info:    objectDeleted( 16 , BLOCK )
 Xcos trace:   propertyUpdated( 33 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 33 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 35 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 18 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 35 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 18 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 19 , PORT )
+Xcos info:    objectDeleted( 18 , BLOCK )
 Xcos trace:   propertyUpdated( 35 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 35 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 37 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 37 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 33 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 35 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 31 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 33 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 35 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 31 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 20 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 20 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
@@ -981,17 +993,35 @@ Xcos debug:   propertyUpdated( 20 , BLOCK , OUTPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 20 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 20 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos info:    objectDeleted( 22 , PORT )
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 31 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 20 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 27 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 27 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 27 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 27 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 28 , PORT )
+Xcos info:    objectDeleted( 27 , BLOCK )
+Xcos debug:   propertyUpdated( 20 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 29 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 29 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 29 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 29 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 30 , PORT )
+Xcos info:    objectDeleted( 29 , BLOCK )
+Xcos debug:   propertyUpdated( 20 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 31 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 31 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 31 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 31 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 32 , PORT )
+Xcos info:    objectDeleted( 31 , BLOCK )
 Xcos info:    objectDeleted( 20 , BLOCK )
 super.model.rpar.objs($+1) = l;
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 33 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 35 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 37 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 33 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 35 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 37 , BLOCK ) : 1
 Xcos info:    objectCreated( 39 , BLOCK )
 Xcos info:    objectCloned( 13 , 39 , BLOCK )
 Xcos trace:   propertyUpdated( 39 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -1327,10 +1357,6 @@ Xcos trace:   propertyUpdated( 54 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 54 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 54 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 48 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 50 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 54 , LINK ) : 1
-Xcos trace:   objectReferenced( 48 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 39 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   propertyUpdated( 42 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 42 , BLOCK , OUTPUTS ) : SUCCESS
@@ -1340,7 +1366,7 @@ Xcos info:    objectDeleted( 43 , PORT )
 Xcos info:    objectDeleted( 42 , BLOCK )
 Xcos trace:   propertyUpdated( 48 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 48 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 50 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 50 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 39 , BLOCK , CHILDREN ) : SUCCESS
 Xcos debug:   propertyUpdated( 44 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 44 , BLOCK , OUTPUTS ) : NO_CHANGES
@@ -1350,7 +1376,7 @@ Xcos info:    objectDeleted( 45 , PORT )
 Xcos info:    objectDeleted( 44 , BLOCK )
 Xcos trace:   propertyUpdated( 50 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 50 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 52 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 39 , BLOCK , CHILDREN ) : SUCCESS
 Xcos debug:   propertyUpdated( 46 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 46 , BLOCK , OUTPUTS ) : NO_CHANGES
@@ -1360,19 +1386,19 @@ Xcos info:    objectDeleted( 47 , PORT )
 Xcos info:    objectDeleted( 46 , BLOCK )
 Xcos trace:   propertyUpdated( 52 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 52 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 54 , LINK ) : 2
+Xcos trace:   objectReferenced( 54 , LINK ) : 1
 Xcos trace:   propertyUpdated( 54 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 54 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 54 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 54 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 39 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 48 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 50 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 54 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 33 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 35 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 48 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 50 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 54 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 33 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 35 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 13 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
@@ -1387,10 +1413,10 @@ Xcos trace:   propertyUpdated( 13 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 48 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 50 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 52 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 54 , LINK ) : 2
+Xcos trace:   objectReferenced( 48 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 50 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 52 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 54 , LINK ) : 1
 Xcos info:    objectCreated( 55 , BLOCK )
 Xcos info:    objectCloned( 48 , 55 , BLOCK )
 Xcos trace:   propertyUpdated( 55 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -1534,35 +1560,49 @@ Xcos trace:   propertyUpdated( 61 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 61 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 61 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 55 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 57 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 59 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 61 , LINK ) : 1
-Xcos trace:   objectReferenced( 55 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 33 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 33 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 33 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 33 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 33 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 34 , PORT )
+Xcos info:    objectDeleted( 33 , BLOCK )
 Xcos trace:   propertyUpdated( 55 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 55 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 57 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 35 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 57 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 35 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 35 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 35 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 35 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 36 , PORT )
+Xcos info:    objectDeleted( 35 , BLOCK )
 Xcos trace:   propertyUpdated( 57 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 57 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 59 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 37 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 59 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 37 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 37 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 37 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 37 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 38 , PORT )
+Xcos info:    objectDeleted( 37 , BLOCK )
 Xcos trace:   propertyUpdated( 59 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 59 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 61 , LINK ) : 2
+Xcos trace:   objectReferenced( 61 , LINK ) : 1
 Xcos trace:   propertyUpdated( 61 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 61 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos trace:   propertyUpdated( 61 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 61 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 55 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 57 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 59 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 61 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 48 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 50 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 54 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 55 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 57 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 59 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 61 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 48 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 50 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 54 , LINK ) : 0
 Xcos trace:   objectReferenced( 39 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 39 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
@@ -1590,32 +1630,51 @@ Xcos debug:   propertyUpdated( 39 , BLOCK , OUTPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 39 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 39 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos info:    objectDeleted( 41 , PORT )
-Xcos trace:   objectUnreferenced( 48 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 50 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 52 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 54 , LINK ) : 0
+Xcos debug:   propertyUpdated( 39 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 48 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 48 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 48 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 48 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 49 , PORT )
+Xcos info:    objectDeleted( 48 , BLOCK )
+Xcos debug:   propertyUpdated( 39 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 50 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 50 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 50 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 50 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 51 , PORT )
+Xcos info:    objectDeleted( 50 , BLOCK )
+Xcos debug:   propertyUpdated( 39 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 52 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 52 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 52 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 52 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 53 , PORT )
+Xcos info:    objectDeleted( 52 , BLOCK )
+Xcos debug:   propertyUpdated( 39 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 54 , LINK )
 Xcos info:    objectDeleted( 39 , BLOCK )
 assert_checkequal(length(super.model.rpar.objs), 4);
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 55 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 57 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 59 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 61 , LINK ) : 2
+Xcos trace:   objectReferenced( 55 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 57 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 59 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 61 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 55 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 57 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 59 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 61 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 55 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 57 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 59 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 61 , LINK ) : 0
 super.model.rpar.objs($).from = [1 1 0];
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 55 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 57 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 59 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 61 , LINK ) : 2
+Xcos trace:   objectReferenced( 55 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 57 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 59 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 61 , LINK ) : 1
 Xcos info:    objectCreated( 62 , LINK )
 Xcos info:    objectCloned( 61 , 62 , LINK )
 Xcos trace:   propertyUpdated( 62 , LINK , COLOR ) : NO_CHANGES
@@ -1629,7 +1688,7 @@ Xcos trace:   propertyUpdated( 62 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 62 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 62 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 62 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 61 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 61 , LINK ) : 0
 Xcos info:    objectCreated( 63 , BLOCK )
 Xcos info:    objectCloned( 13 , 63 , BLOCK )
 Xcos trace:   propertyUpdated( 63 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -1967,10 +2026,6 @@ Xcos trace:   propertyUpdated( 76 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 74 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 77 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 73 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 77 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 62 , LINK ) : 1
-Xcos trace:   objectReferenced( 73 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 63 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   propertyUpdated( 66 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 66 , BLOCK , OUTPUTS ) : SUCCESS
@@ -1980,7 +2035,7 @@ Xcos info:    objectDeleted( 67 , PORT )
 Xcos info:    objectDeleted( 66 , BLOCK )
 Xcos trace:   propertyUpdated( 73 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 73 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 75 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 63 , BLOCK , CHILDREN ) : SUCCESS
 Xcos debug:   propertyUpdated( 68 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 68 , BLOCK , OUTPUTS ) : NO_CHANGES
@@ -1990,7 +2045,7 @@ Xcos info:    objectDeleted( 69 , PORT )
 Xcos info:    objectDeleted( 68 , BLOCK )
 Xcos trace:   propertyUpdated( 75 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 75 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 77 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 77 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 63 , BLOCK , CHILDREN ) : SUCCESS
 Xcos debug:   propertyUpdated( 70 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 70 , BLOCK , OUTPUTS ) : NO_CHANGES
@@ -2000,7 +2055,7 @@ Xcos info:    objectDeleted( 71 , PORT )
 Xcos info:    objectDeleted( 70 , BLOCK )
 Xcos trace:   propertyUpdated( 77 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 77 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 62 , LINK ) : 2
+Xcos trace:   objectReferenced( 62 , LINK ) : 1
 Xcos debug:   propertyUpdated( 63 , BLOCK , CHILDREN ) : SUCCESS
 Xcos info:    objectDeleted( 72 , LINK )
 Xcos trace:   propertyUpdated( 62 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
@@ -2010,13 +2065,13 @@ Xcos debug:   propertyUpdated( 74 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 62 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos trace:   propertyUpdated( 62 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 63 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 73 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 77 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 62 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 55 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 57 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 59 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 73 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 77 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 55 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 57 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 59 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 62 , LINK ) : 0
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 13 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
@@ -2031,10 +2086,10 @@ Xcos trace:   propertyUpdated( 13 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 73 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 75 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 77 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 62 , LINK ) : 2
+Xcos trace:   objectReferenced( 73 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 75 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 77 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 62 , LINK ) : 1
 Xcos info:    objectCreated( 79 , BLOCK )
 Xcos info:    objectCloned( 73 , 79 , BLOCK )
 Xcos trace:   propertyUpdated( 79 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -2178,23 +2233,38 @@ Xcos trace:   propertyUpdated( 85 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 85 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos trace:   propertyUpdated( 85 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 79 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 81 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 83 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 85 , LINK ) : 1
-Xcos trace:   objectReferenced( 79 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 55 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 55 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 55 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 55 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 55 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 56 , PORT )
+Xcos info:    objectDeleted( 55 , BLOCK )
 Xcos trace:   propertyUpdated( 79 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 79 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 81 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 57 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 81 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 57 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 57 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 57 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 57 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 58 , PORT )
+Xcos info:    objectDeleted( 57 , BLOCK )
 Xcos trace:   propertyUpdated( 81 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 81 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 83 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 59 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 83 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 59 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 59 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 59 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 59 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 60 , PORT )
+Xcos info:    objectDeleted( 59 , BLOCK )
 Xcos trace:   propertyUpdated( 83 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 83 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 85 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 61 , LINK ) : 0
+Xcos trace:   objectReferenced( 85 , LINK ) : 1
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 61 , LINK )
 Xcos trace:   propertyUpdated( 85 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 85 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 80 , PORT , CONNECTED_SIGNALS ) : SUCCESS
@@ -2203,14 +2273,14 @@ Xcos debug:   propertyUpdated( 80 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos trace:   propertyUpdated( 85 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 85 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 79 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 81 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 83 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 85 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 73 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 77 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 62 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 79 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 81 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 83 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 85 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 73 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 77 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 62 , LINK ) : 0
 Xcos trace:   objectReferenced( 63 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 63 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
@@ -2238,19 +2308,39 @@ Xcos debug:   propertyUpdated( 63 , BLOCK , OUTPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 63 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 63 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos info:    objectDeleted( 65 , PORT )
-Xcos trace:   objectUnreferenced( 73 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 75 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 77 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 62 , LINK ) : 0
+Xcos debug:   propertyUpdated( 63 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 73 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 73 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 73 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 73 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 62 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 74 , PORT )
+Xcos info:    objectDeleted( 73 , BLOCK )
+Xcos debug:   propertyUpdated( 63 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 75 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 75 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 75 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 75 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 76 , PORT )
+Xcos info:    objectDeleted( 75 , BLOCK )
+Xcos debug:   propertyUpdated( 63 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 77 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 77 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 77 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 77 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 78 , PORT )
+Xcos info:    objectDeleted( 77 , BLOCK )
+Xcos debug:   propertyUpdated( 63 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 62 , LINK )
 Xcos info:    objectDeleted( 63 , BLOCK )
 super.model.rpar.objs($).to = [3 1 1];
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 79 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 81 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 83 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 85 , LINK ) : 2
+Xcos trace:   objectReferenced( 79 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 81 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 83 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 85 , LINK ) : 1
 Xcos info:    objectCreated( 86 , LINK )
 Xcos info:    objectCloned( 85 , 86 , LINK )
 Xcos trace:   propertyUpdated( 86 , LINK , COLOR ) : NO_CHANGES
@@ -2264,7 +2354,7 @@ Xcos trace:   propertyUpdated( 86 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 86 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 86 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 86 , LINK , DESTINATION_PORT ) : NO_CHANGES
-Xcos trace:   objectUnreferenced( 85 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 85 , LINK ) : 0
 Xcos info:    objectCreated( 87 , BLOCK )
 Xcos info:    objectCloned( 13 , 87 , BLOCK )
 Xcos trace:   propertyUpdated( 87 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -2602,10 +2692,6 @@ Xcos trace:   propertyUpdated( 100 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 98 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 101 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 97 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 99 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 101 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 86 , LINK ) : 1
-Xcos trace:   objectReferenced( 97 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 87 , BLOCK , CHILDREN ) : SUCCESS
 Xcos trace:   propertyUpdated( 90 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 90 , BLOCK , OUTPUTS ) : SUCCESS
@@ -2616,7 +2702,7 @@ Xcos info:    objectDeleted( 91 , PORT )
 Xcos info:    objectDeleted( 90 , BLOCK )
 Xcos trace:   propertyUpdated( 97 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 97 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 99 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 99 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 87 , BLOCK , CHILDREN ) : SUCCESS
 Xcos debug:   propertyUpdated( 92 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 92 , BLOCK , OUTPUTS ) : NO_CHANGES
@@ -2626,7 +2712,7 @@ Xcos info:    objectDeleted( 93 , PORT )
 Xcos info:    objectDeleted( 92 , BLOCK )
 Xcos trace:   propertyUpdated( 99 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 99 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 101 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 101 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 87 , BLOCK , CHILDREN ) : SUCCESS
 Xcos debug:   propertyUpdated( 94 , BLOCK , INPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 94 , BLOCK , OUTPUTS ) : NO_CHANGES
@@ -2636,7 +2722,7 @@ Xcos info:    objectDeleted( 95 , PORT )
 Xcos info:    objectDeleted( 94 , BLOCK )
 Xcos trace:   propertyUpdated( 101 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 101 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 86 , LINK ) : 2
+Xcos trace:   objectReferenced( 86 , LINK ) : 1
 Xcos debug:   propertyUpdated( 87 , BLOCK , CHILDREN ) : SUCCESS
 Xcos info:    objectDeleted( 96 , LINK )
 Xcos trace:   propertyUpdated( 86 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
@@ -2649,13 +2735,13 @@ Xcos trace:   propertyUpdated( 102 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 102 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 86 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 87 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 97 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 99 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 101 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 86 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 79 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 81 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 83 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 97 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 99 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 101 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 79 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 81 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 83 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 86 , LINK ) : 0
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 13 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
@@ -2670,10 +2756,10 @@ Xcos trace:   propertyUpdated( 13 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 97 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 99 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 101 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 86 , LINK ) : 2
+Xcos trace:   objectReferenced( 97 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 99 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 101 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 86 , LINK ) : 1
 Xcos info:    objectCreated( 103 , BLOCK )
 Xcos info:    objectCloned( 97 , 103 , BLOCK )
 Xcos trace:   propertyUpdated( 103 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -2817,36 +2903,52 @@ Xcos trace:   propertyUpdated( 109 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 109 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 109 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos trace:   objectReferenced( 103 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 105 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 107 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 109 , LINK ) : 1
-Xcos trace:   objectReferenced( 103 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 79 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 79 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 79 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 79 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 79 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 85 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 80 , PORT )
+Xcos info:    objectDeleted( 79 , BLOCK )
 Xcos trace:   propertyUpdated( 103 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 103 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 105 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 81 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 105 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 81 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 81 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 81 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 81 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 82 , PORT )
+Xcos info:    objectDeleted( 81 , BLOCK )
 Xcos trace:   propertyUpdated( 105 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 105 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 107 , BLOCK ) : 2
-Xcos trace:   objectUnreferenced( 83 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 107 , BLOCK ) : 1
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 83 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 83 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 83 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 83 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 84 , PORT )
+Xcos info:    objectDeleted( 83 , BLOCK )
 Xcos trace:   propertyUpdated( 107 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 107 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 109 , LINK ) : 2
-Xcos trace:   objectUnreferenced( 85 , LINK ) : 0
+Xcos trace:   objectReferenced( 109 , LINK ) : 1
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 85 , LINK )
 Xcos trace:   propertyUpdated( 109 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 109 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 104 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 108 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 109 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 97 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 99 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 101 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 86 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 109 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 97 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 99 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 101 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 86 , LINK ) : 0
 Xcos trace:   objectReferenced( 87 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 87 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
@@ -2874,67 +2976,88 @@ Xcos debug:   propertyUpdated( 87 , BLOCK , OUTPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 87 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 87 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos info:    objectDeleted( 89 , PORT )
-Xcos trace:   objectUnreferenced( 97 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 99 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 101 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 86 , LINK ) : 0
+Xcos debug:   propertyUpdated( 87 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 97 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 97 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 97 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 97 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 86 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 98 , PORT )
+Xcos info:    objectDeleted( 97 , BLOCK )
+Xcos debug:   propertyUpdated( 87 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 99 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 99 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 99 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 99 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 100 , PORT )
+Xcos info:    objectDeleted( 99 , BLOCK )
+Xcos debug:   propertyUpdated( 87 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 101 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 101 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 101 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 101 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 86 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 102 , PORT )
+Xcos info:    objectDeleted( 101 , BLOCK )
+Xcos debug:   propertyUpdated( 87 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 86 , LINK )
 Xcos info:    objectDeleted( 87 , BLOCK )
 assert_checkequal(super.model.rpar.objs(1).graphics.pout, 4);
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 103 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 105 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 107 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 109 , LINK ) : 2
+Xcos trace:   objectReferenced( 103 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 105 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 107 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 109 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 109 , LINK ) : 1
-Xcos trace:   objectReferenced( 103 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 109 , LINK ) : 0
+Xcos trace:   objectReferenced( 103 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 0
 assert_checkequal(super.model.rpar.objs(3).graphics.pin, 4);
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 103 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 105 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 107 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 109 , LINK ) : 2
+Xcos trace:   objectReferenced( 103 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 105 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 107 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 109 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 109 , LINK ) : 1
-Xcos trace:   objectReferenced( 107 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 109 , LINK ) : 0
+Xcos trace:   objectReferenced( 107 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 0
 assert_checkequal(super.model.rpar.objs(4).from, [1 1 0]);
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 103 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 105 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 107 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 109 , LINK ) : 2
+Xcos trace:   objectReferenced( 103 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 105 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 107 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 109 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 109 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 109 , LINK ) : 0
 assert_checkequal(super.model.rpar.objs(4).to, [3 1 1]);
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 103 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 105 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 107 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 109 , LINK ) : 2
+Xcos trace:   objectReferenced( 103 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 105 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 107 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 109 , LINK ) : 1
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 109 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 109 , LINK ) : 0
 // Check that all the model items are freed
 clear
 Xcos debug:   propertyUpdated( 1 , BLOCK , INPUTS ) : SUCCESS
@@ -2954,8 +3077,29 @@ Xcos debug:   propertyUpdated( 13 , BLOCK , OUTPUTS ) : SUCCESS
 Xcos trace:   propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos info:    objectDeleted( 15 , PORT )
-Xcos trace:   objectUnreferenced( 103 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 105 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 107 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 109 , LINK ) : 0
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos trace:   propertyUpdated( 103 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 103 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 103 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 103 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 109 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 104 , PORT )
+Xcos info:    objectDeleted( 103 , BLOCK )
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 105 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 105 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 105 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 105 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 106 , PORT )
+Xcos info:    objectDeleted( 105 , BLOCK )
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos debug:   propertyUpdated( 107 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 107 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 107 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 107 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 109 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 108 , PORT )
+Xcos info:    objectDeleted( 107 , BLOCK )
+Xcos debug:   propertyUpdated( 13 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 109 , LINK )
 Xcos info:    objectDeleted( 13 , BLOCK )
index 690a82e..c66be39 100644 (file)
@@ -44,12 +44,11 @@ Xcos trace:   propertyUpdated( 2 , DIAGRAM , PROPERTIES ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 2 , DIAGRAM , CONTEXT ) : NO_CHANGES
 Xcos trace:   objectUnreferenced( 2 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 1 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 1 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 2 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
 Xcos debug:   propertyUpdated( 2 , DIAGRAM , VERSION_NUMBER ) : SUCCESS
+Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
 scs_m.props.context = ["My context"; "with two lines"];
 Xcos trace:   objectReferenced( 2 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 2 , DIAGRAM ) : 0
@@ -100,7 +99,7 @@ Xcos trace:   propertyUpdated( 3 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 3 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 3 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 3 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 1 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 1 , BLOCK ) : 1
 Xcos info:    objectCreated( 4 , BLOCK )
 Xcos info:    objectCloned( 1 , 4 , BLOCK )
 Xcos trace:   propertyUpdated( 4 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -132,12 +131,11 @@ Xcos trace:   propertyUpdated( 4 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 4 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 4 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 4 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 4 , BLOCK ) : 2
 Xcos trace:   propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 4 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 3 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 4 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 4 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 2 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 2 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 3 , BLOCK ) : 3
@@ -168,7 +166,8 @@ Xcos trace:   objectUnreferenced( 2 , DIAGRAM ) : 0
 // Check that all the model items are freed
 clear
 Xcos debug:   propertyUpdated( 1 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 1 , BLOCK ) : 0
+Xcos info:    objectDeleted( 1 , BLOCK )
 Xcos info:    objectDeleted( 2 , DIAGRAM )
-Xcos trace:   objectUnreferenced( 4 , BLOCK ) : 0
+Xcos debug:   propertyUpdated( 3 , BLOCK , CHILDREN ) : SUCCESS
+Xcos info:    objectDeleted( 4 , BLOCK )
 Xcos info:    objectDeleted( 3 , BLOCK )
index ae1941f..c604af6 100644 (file)
@@ -208,12 +208,11 @@ Xcos trace:   propertyUpdated( 6 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 6 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 6 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
 Xcos info:    objectCreated( 8 , BLOCK )
 Xcos info:    objectCloned( 4 , 8 , BLOCK )
 Xcos trace:   propertyUpdated( 8 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -257,12 +256,11 @@ Xcos trace:   propertyUpdated( 8 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 8 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 8 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 8 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 8 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
 Xcos info:    objectCreated( 10 , BLOCK )
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 10 , BLOCK , GEOMETRY ) : NO_CHANGES
@@ -296,8 +294,8 @@ Xcos trace:   propertyUpdated( 10 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 10 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 10 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 6 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 8 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 6 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 8 , BLOCK ) : 1
 Xcos info:    objectCreated( 13 , BLOCK )
 Xcos info:    objectCloned( 6 , 13 , BLOCK )
 Xcos trace:   propertyUpdated( 13 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -384,18 +382,16 @@ Xcos trace:   propertyUpdated( 16 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 14 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 15 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   propertyUpdated( 13 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 13 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 15 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 15 , BLOCK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 10 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 0
 Xcos trace:   objectReferenced( 1 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 1 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 3
@@ -428,8 +424,18 @@ Xcos info:    objectDeleted( 5 , PORT )
 Xcos info:    objectDeleted( 4 , BLOCK )
 Xcos debug:   propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 6 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 8 , BLOCK ) : 0
+Xcos trace:   propertyUpdated( 6 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 6 , BLOCK , OUTPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 7 , PORT )
+Xcos info:    objectDeleted( 6 , BLOCK )
+Xcos debug:   propertyUpdated( 8 , BLOCK , INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 8 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 8 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 8 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 9 , PORT )
+Xcos info:    objectDeleted( 8 , BLOCK )
 Xcos info:    objectDeleted( 1 , DIAGRAM )
  sb  = 
 GUI     : SUPER_f
@@ -508,18 +514,18 @@ Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 1
 super type: 0
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 0
 in = 1
 in2 = 1
 intyp = 1
@@ -567,12 +573,12 @@ options = tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(%t,33),[8,1
 void2 = []
 void3 = []
 doc = list()
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
 1     IN_f
 2     OUT_f
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 0
 sb.model.rpar.props
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 3
@@ -596,15 +602,15 @@ sb.model.rpar.objs
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 0
  ans  =
        ans(1)
 GUI     : IN_f
 Graphics: 
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
           orig = [40,40]
           sz = [20,20]
           exprs = "1"
@@ -622,8 +628,8 @@ Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 2
           out_label = ""
           style = ""
 Model   : 
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
           input type: 0
           in = []
           in2 = []
@@ -650,8 +656,8 @@ Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 2
        ans(2)
 GUI     : OUT_f
 Graphics: 
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
           orig = [240,40]
           sz = [20,20]
           exprs = "1"
@@ -669,8 +675,8 @@ Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 2
           out_label = ""
           style = ""
 Model   : 
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
           output type: 0
           in = -1
           in2 = -2
@@ -698,15 +704,15 @@ sb.model.rpar.objs(1).graphics
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 3
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 4
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 3
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 0
  ans  =
 orig = [40,40]
 sz = [20,20]
@@ -728,13 +734,13 @@ sb.model.rpar.objs(1).model
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
  ans  =
 input type: 0
 in = []
@@ -763,13 +769,13 @@ sb.model.rpar.objs(2).graphics
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 0
  ans  =
 orig = [240,40]
 sz = [20,20]
@@ -791,13 +797,13 @@ sb.model.rpar.objs(2).model
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 1
 Xcos trace:   objectReferenced( 10 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 13 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 13 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 1
 Xcos trace:   objectUnreferenced( 10 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 15 , BLOCK ) : 3
-Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 13 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 15 , BLOCK ) : 2
 Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 15 , BLOCK ) : 0
  ans  =
 output type: 0
 in = -1
@@ -1220,12 +1226,11 @@ Xcos trace:   propertyUpdated( 27 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 27 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 27 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 27 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 2
+Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
+Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
 Xcos info:    objectCreated( 29 , BLOCK )
 Xcos info:    objectCloned( 17 , 29 , BLOCK )
 Xcos debug:   propertyUpdated( 29 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
@@ -1281,12 +1286,11 @@ Xcos trace:   propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 30 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 29 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 29 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 29 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 29 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 29 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
 Xcos info:    objectCreated( 32 , LINK )
 Xcos debug:   propertyUpdated( 32 , LINK , CONTROL_POINTS ) : SUCCESS
 Xcos debug:   propertyUpdated( 32 , LINK , CONTROL_POINTS ) : SUCCESS
@@ -1294,8 +1298,8 @@ Xcos trace:   propertyUpdated( 32 , LINK , DESCRIPTION ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 32 , LINK , THICK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 32 , LINK , COLOR ) : SUCCESS
 Xcos debug:   propertyUpdated( 32 , LINK , KIND ) : SUCCESS
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 29 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 29 , BLOCK ) : 1
 Xcos info:    objectCreated( 33 , LINK )
 Xcos info:    objectCloned( 32 , 33 , LINK )
 Xcos debug:   propertyUpdated( 33 , LINK , COLOR ) : SUCCESS
@@ -1310,20 +1314,19 @@ Xcos trace:   propertyUpdated( 33 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 33 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 33 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 33 , LINK ) : 1
-Xcos trace:   objectReferenced( 33 , LINK ) : 2
 Xcos debug:   propertyUpdated( 33 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 33 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 33 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 33 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 0
 Xcos info:    objectDeleted( 32 , LINK )
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 29 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 33 , LINK ) : 2
+Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 29 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 33 , LINK ) : 1
 Xcos info:    objectCreated( 34 , BLOCK )
 Xcos info:    objectCloned( 22 , 34 , BLOCK )
 Xcos trace:   propertyUpdated( 34 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -1391,15 +1394,14 @@ Xcos trace:   propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 34 , BLOCK , CHILDREN ) : NO_CHANGES
 Xcos trace:   objectReferenced( 34 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 34 , BLOCK ) : 2
 Xcos debug:   propertyUpdated( 34 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 34 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 33 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
 Xcos info:    objectCreated( 38 , LINK )
 Xcos debug:   propertyUpdated( 38 , LINK , CONTROL_POINTS ) : SUCCESS
 Xcos debug:   propertyUpdated( 38 , LINK , CONTROL_POINTS ) : SUCCESS
@@ -1407,10 +1409,10 @@ Xcos trace:   propertyUpdated( 38 , LINK , DESCRIPTION ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 38 , LINK , THICK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 38 , LINK , COLOR ) : SUCCESS
 Xcos debug:   propertyUpdated( 38 , LINK , KIND ) : SUCCESS
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 29 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 33 , LINK ) : 2
-Xcos trace:   objectReferenced( 34 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 29 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 33 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , BLOCK ) : 1
 Xcos info:    objectCreated( 39 , LINK )
 Xcos info:    objectCloned( 38 , 39 , LINK )
 Xcos debug:   propertyUpdated( 39 , LINK , COLOR ) : SUCCESS
@@ -1425,7 +1427,6 @@ Xcos trace:   propertyUpdated( 39 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 39 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 39 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 39 , LINK ) : 1
-Xcos trace:   objectReferenced( 39 , LINK ) : 2
 Xcos debug:   propertyUpdated( 39 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 39 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -1435,11 +1436,11 @@ Xcos trace:   propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 39 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 39 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 33 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 1
+Xcos trace:   objectUnreferenced( 39 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
 Xcos info:    objectDeleted( 38 , LINK )
 Xcos info:    objectCreated( 40 , LINK )
 Xcos debug:   propertyUpdated( 40 , LINK , CONTROL_POINTS ) : SUCCESS
@@ -1448,11 +1449,11 @@ Xcos trace:   propertyUpdated( 40 , LINK , DESCRIPTION ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 40 , LINK , THICK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 40 , LINK , COLOR ) : SUCCESS
 Xcos debug:   propertyUpdated( 40 , LINK , KIND ) : SUCCESS
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 29 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 33 , LINK ) : 2
-Xcos trace:   objectReferenced( 34 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 39 , LINK ) : 2
+Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 29 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 33 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 39 , LINK ) : 1
 Xcos info:    objectCreated( 41 , LINK )
 Xcos info:    objectCloned( 40 , 41 , LINK )
 Xcos debug:   propertyUpdated( 41 , LINK , COLOR ) : SUCCESS
@@ -1467,7 +1468,6 @@ Xcos trace:   propertyUpdated( 41 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 41 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 41 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace:   objectReferenced( 41 , LINK ) : 1
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
 Xcos debug:   propertyUpdated( 41 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos trace:   propertyUpdated( 41 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
@@ -1477,12 +1477,12 @@ Xcos trace:   propertyUpdated( 30 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 30 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 41 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 33 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 39 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 39 , LINK ) : 0
 Xcos info:    objectDeleted( 40 , LINK )
 Xcos info:    objectCreated( 42 , BLOCK )
 Xcos trace:   objectReferenced( 42 , BLOCK ) : 1
@@ -1658,12 +1658,12 @@ Xcos trace:   propertyUpdated( 42 , BLOCK , STATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 42 , BLOCK , DSTATE ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 42 , BLOCK , ODSTATE ) : NO_CHANGES
 Xcos trace:   objectReferenced( 42 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 27 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 29 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 33 , LINK ) : 2
-Xcos trace:   objectReferenced( 34 , BLOCK ) : 2
-Xcos trace:   objectReferenced( 39 , LINK ) : 2
-Xcos trace:   objectReferenced( 41 , LINK ) : 2
+Xcos trace:   objectReferenced( 27 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 29 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 33 , LINK ) : 1
+Xcos trace:   objectReferenced( 34 , BLOCK ) : 1
+Xcos trace:   objectReferenced( 39 , LINK ) : 1
+Xcos trace:   objectReferenced( 41 , LINK ) : 1
 Xcos info:    objectCreated( 44 , BLOCK )
 Xcos info:    objectCloned( 27 , 44 , BLOCK )
 Xcos trace:   propertyUpdated( 44 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
@@ -1872,27 +1872,21 @@ Xcos trace:   propertyUpdated( 55 , LINK , PARENT_BLOCK ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 55 , LINK , SOURCE_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 55 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos trace:   objectReferenced( 44 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 46 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 49 , LINK ) : 1
-Xcos trace:   objectReferenced( 50 , BLOCK ) : 1
-Xcos trace:   objectReferenced( 54 , LINK ) : 1
-Xcos trace:   objectReferenced( 55 , LINK ) : 1
-Xcos trace:   objectReferenced( 44 , BLOCK ) : 2
 Xcos trace:   propertyUpdated( 44 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 44 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 46 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 46 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 46 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 46 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 49 , LINK ) : 2
+Xcos trace:   objectReferenced( 49 , LINK ) : 1
 Xcos trace:   propertyUpdated( 49 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 49 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 50 , BLOCK ) : 2
+Xcos trace:   objectReferenced( 50 , BLOCK ) : 1
 Xcos trace:   propertyUpdated( 50 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 50 , BLOCK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 54 , LINK ) : 2
+Xcos trace:   objectReferenced( 54 , LINK ) : 1
 Xcos trace:   propertyUpdated( 54 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 54 , LINK , PARENT_BLOCK ) : SUCCESS
-Xcos trace:   objectReferenced( 55 , LINK ) : 2
+Xcos trace:   objectReferenced( 55 , LINK ) : 1
 Xcos trace:   propertyUpdated( 55 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
 Xcos debug:   propertyUpdated( 55 , LINK , PARENT_BLOCK ) : SUCCESS
 Xcos debug:   propertyUpdated( 45 , PORT , CONNECTED_SIGNALS ) : SUCCESS
@@ -1908,18 +1902,18 @@ Xcos debug:   propertyUpdated( 51 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 51 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 Xcos debug:   propertyUpdated( 49 , LINK , DESTINATION_PORT ) : SUCCESS
 Xcos debug:   propertyUpdated( 42 , BLOCK , CHILDREN ) : SUCCESS
-Xcos trace:   objectUnreferenced( 44 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 49 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 50 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 54 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 55 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 33 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 1
-Xcos trace:   objectUnreferenced( 39 , LINK ) : 1
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 1
+Xcos trace:   objectUnreferenced( 44 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 46 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 49 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 50 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 54 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 55 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
+Xcos trace:   objectUnreferenced( 39 , LINK ) : 0
+Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
 Xcos trace:   objectReferenced( 26 , DIAGRAM ) : 1
 Xcos trace:   objectUnreferenced( 26 , DIAGRAM ) : 0
 Xcos trace:   objectReferenced( 42 , BLOCK ) : 3
@@ -1944,12 +1938,47 @@ Xcos debug:   propertyUpdated( 33 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 34 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 39 , LINK , PARENT_DIAGRAM ) : SUCCESS
 Xcos debug:   propertyUpdated( 41 , LINK , PARENT_DIAGRAM ) : SUCCESS
-Xcos trace:   objectUnreferenced( 27 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 29 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 33 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 34 , BLOCK ) : 0
-Xcos trace:   objectUnreferenced( 39 , LINK ) : 0
-Xcos trace:   objectUnreferenced( 41 , LINK ) : 0
+Xcos trace:   propertyUpdated( 27 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 27 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 27 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 27 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 39 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 28 , PORT )
+Xcos info:    objectDeleted( 27 , BLOCK )
+Xcos trace:   propertyUpdated( 29 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 29 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 29 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 29 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 41 , LINK , DESTINATION_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 30 , PORT )
+Xcos trace:   propertyUpdated( 29 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 29 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 29 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 29 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 33 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 31 , PORT )
+Xcos info:    objectDeleted( 29 , BLOCK )
+Xcos info:    objectDeleted( 33 , LINK )
+Xcos trace:   propertyUpdated( 34 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : SUCCESS
+Xcos trace:   propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+Xcos info:    objectDeleted( 35 , PORT )
+Xcos trace:   propertyUpdated( 34 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 39 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 36 , PORT )
+Xcos trace:   propertyUpdated( 34 , BLOCK , INPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
+Xcos trace:   propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+Xcos debug:   propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+Xcos debug:   propertyUpdated( 41 , LINK , SOURCE_PORT ) : SUCCESS
+Xcos info:    objectDeleted( 37 , PORT )
+Xcos info:    objectDeleted( 34 , BLOCK )
+Xcos info:    objectDeleted( 39 , LINK )
+Xcos info:    objectDeleted( 41 , LINK )
 Xcos info:    objectDeleted( 26 , DIAGRAM )
 Xcos trace:   propertyUpdated( 17 , BLOCK , INPUTS ) : NO_CHANGES
 Xcos trace:   propertyUpdated( 17 , BLOCK , OUTPUTS ) : NO_CHANGES