Xcos MVC: Avoid leaking memory and pass the tests 27/15427/23
Clément DAVID [Wed, 29 Oct 2014 16:37:23 +0000 (17:37 +0100)]
 * Fixed empty 'context' and '*_implicit' properties returning empty string (of size 0)
 * Fixed empty Port signal not returning '0'
 * Use Link constructors to propagate connections on model modification
 * Delete ports on blocks deletion
 * Implement clone() as a copy constructor call
 * All tests pass on valgrind

Change-Id: Ie2a45462c9feb9194dba99f8d47b150b0e5f926c

40 files changed:
scilab/modules/scicos/includes/Controller.hxx
scilab/modules/scicos/includes/adapters_utilities.hxx [new file with mode: 0644]
scilab/modules/scicos/src/cpp/Controller.cpp
scilab/modules/scicos/src/cpp/model/Port.hxx
scilab/modules/scicos/src/cpp/view_scilab/BaseAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/BlockAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/BlockAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/CprAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/CprAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/DiagramAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/DiagramAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/GraphicsAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/GraphicsAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/LinkAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/LinkAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/ModelAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/ModelAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/ParamsAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/ParamsAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/ScsAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/ScsAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/StateAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/StateAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/TextAdapter.cpp
scilab/modules/scicos/src/cpp/view_scilab/TextAdapter.hxx
scilab/modules/scicos/src/cpp/view_scilab/ports_management.hxx
scilab/modules/scicos/tests/unit_tests/model/Annotation.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Annotation.tst
scilab/modules/scicos/tests/unit_tests/model/Block.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Block.tst
scilab/modules/scicos/tests/unit_tests/model/Diagram.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Diagram.tst
scilab/modules/scicos/tests/unit_tests/model/Link.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Link.tst
scilab/modules/scicos/tests/unit_tests/model/SuperBlock.dia.ref
scilab/modules/scicos/tests/unit_tests/model/SuperBlock.tst
scilab/modules/scicos/tests/unit_tests/model/link_preservation.dia.ref [new file with mode: 0644]
scilab/modules/scicos/tests/unit_tests/model/link_preservation.tst [new file with mode: 0644]
scilab/modules/scicos/tests/unit_tests/model/simple_delete.dia.ref [new file with mode: 0644]
scilab/modules/scicos/tests/unit_tests/model/simple_delete.tst [new file with mode: 0644]

index 633a17e..eb4acfa 100644 (file)
@@ -121,6 +121,9 @@ private:
 
     void deepClone(std::map<ScicosID, ScicosID>& mapped, ScicosID uid, ScicosID clone, kind_t k, object_properties_t p, bool cloneIfNotFound);
     void deepCloneVector(std::map<ScicosID, ScicosID>& mapped, ScicosID uid, ScicosID clone, kind_t k, object_properties_t p, bool cloneIfNotFound);
+    void unlinkVector(ScicosID uid, kind_t k, object_properties_t uid_prop, object_properties_t ref_prop);
+    void unlink(ScicosID uid, kind_t k, object_properties_t uid_prop, object_properties_t ref_prop);
+    void deleteVector(ScicosID uid, kind_t k, object_properties_t uid_prop);
 };
 
 } /* namespace org_scilab_modules_scicos */
diff --git a/scilab/modules/scicos/includes/adapters_utilities.hxx b/scilab/modules/scicos/includes/adapters_utilities.hxx
new file mode 100644 (file)
index 0000000..1044d38
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2014-2014 - Scilab Enterprises - Clement DAVID
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#ifndef PRIVATE_UTILITIES_HXX_
+#define PRIVATE_UTILITIES_HXX_
+
+enum startOrEnd
+{
+    Start = 0,
+    End = 1
+};
+
+struct link_t
+{
+    size_t block;
+    size_t port;
+    enum startOrEnd kind;
+};
+
+#endif /* PRIVATE_UTILITIES_HXX_ */
index 20ec9b4..1f41605 100644 (file)
  *
  */
 
+#include <string>
+#include <vector>
+#include <map>
+#include <memory>
+#include <utility>
 #include <algorithm>
 
 #include "Controller.hxx"
@@ -105,78 +110,46 @@ ScicosID Controller::createObject(kind_t k)
     return id;
 }
 
-static void unlink_vector(Controller& controller, ScicosID uid, kind_t k, object_properties_t uid_prop, object_properties_t ref_prop)
-{
-    ScicosID v;
-    controller.getObjectProperty(uid, k, uid_prop, v);
-    if (v != 0)
-    {
-        auto o = controller.getObject(v);
-
-        std::vector<ScicosID> children;
-        controller.getObjectProperty(o->id(), o->kind(), ref_prop, children);
-
-        std::vector<ScicosID>::iterator it = std::find(children.begin(), children.end(), uid);
-        if (it != children.end())
-        {
-            children.erase(it);
-        }
-
-        controller.setObjectProperty(o->id(), o->kind(), ref_prop, children);
-    }
-}
-
-static void unlink(Controller& controller, ScicosID uid, kind_t k, object_properties_t uid_prop, object_properties_t ref_prop)
-{
-    ScicosID v;
-    controller.getObjectProperty(uid, k, uid_prop, v);
-    if (v != 0)
-    {
-        auto o = controller.getObject(v);
-        controller.setObjectProperty(o->id(), o->kind(), ref_prop, 0);
-    }
-}
-
 void Controller::deleteObject(ScicosID uid)
 {
-    // disconnect / remove references first
     auto initial = getObject(uid);
     const kind_t k = initial->kind();
+
+    // disconnect / remove references of weak connected objects and decrement the reference count of all strongly connected objects.
     if (k == ANNOTATION)
     {
-        unlink_vector(*this, uid, k, PARENT_DIAGRAM, CHILDREN);
+        unlinkVector(uid, k, PARENT_DIAGRAM, CHILDREN);
         // RELATED_TO is not referenced back
     }
     else if (k == BLOCK)
     {
-        unlink_vector(*this, uid, k, PARENT_DIAGRAM, CHILDREN);
-        // INPUTS will be removed on delete
-        // OUTPUTS will be removed on delete
-        // EVENT_INPUTS will be removed on delete
-        // EVENT_OUTPUTS will be removed on delete
-        unlink_vector(*this, uid, k, PARENT_BLOCK, CHILDREN);
-        // CHILDREN will be removed on delete
+        unlinkVector(uid, k, PARENT_DIAGRAM, CHILDREN);
+        deleteVector(uid, k, INPUTS);
+        deleteVector(uid, k, OUTPUTS);
+        deleteVector(uid, k, EVENT_INPUTS);
+        deleteVector(uid, k, EVENT_OUTPUTS);
+        unlinkVector(uid, k, PARENT_BLOCK, CHILDREN);
+        deleteVector(uid, k, CHILDREN);
         // FIXME what about REFERENCED_PORT ?
     }
     else if (k == DIAGRAM)
     {
-        // CHILDREN will be removed on delete
     }
     else if (k == LINK)
     {
-        unlink_vector(*this, uid, k, PARENT_DIAGRAM, CHILDREN);
-        unlink_vector(*this, uid, k, SOURCE_PORT, CONNECTED_SIGNALS);
-        unlink_vector(*this, uid, k, DESTINATION_PORT, CONNECTED_SIGNALS);
+        unlinkVector(uid, k, PARENT_DIAGRAM, CHILDREN);
+        unlinkVector(uid, k, SOURCE_PORT, CONNECTED_SIGNALS);
+        unlinkVector(uid, k, DESTINATION_PORT, CONNECTED_SIGNALS);
     }
     else if (k == PORT)
     {
-        unlink(*this, uid, k, SOURCE_BLOCK, INPUTS);
-        unlink(*this, uid, k, SOURCE_BLOCK, OUTPUTS);
-        unlink(*this, uid, k, SOURCE_BLOCK, EVENT_INPUTS);
-        unlink(*this, uid, k, SOURCE_BLOCK, EVENT_OUTPUTS);
+        unlinkVector(uid, k, SOURCE_BLOCK, INPUTS);
+        unlinkVector(uid, k, SOURCE_BLOCK, OUTPUTS);
+        unlinkVector(uid, k, SOURCE_BLOCK, EVENT_INPUTS);
+        unlinkVector(uid, k, SOURCE_BLOCK, EVENT_OUTPUTS);
 
-        unlink(*this, uid, k, CONNECTED_SIGNALS, SOURCE_PORT);
-        unlink(*this, uid, k, CONNECTED_SIGNALS, DESTINATION_PORT);
+        unlink(uid, k, CONNECTED_SIGNALS, SOURCE_PORT);
+        unlink(uid, k, CONNECTED_SIGNALS, DESTINATION_PORT);
     }
 
     // delete the object
@@ -188,6 +161,55 @@ void Controller::deleteObject(ScicosID uid)
     }
 }
 
+void Controller::unlinkVector(ScicosID uid, kind_t k, object_properties_t uid_prop, object_properties_t ref_prop)
+{
+    ScicosID v;
+    getObjectProperty(uid, k, uid_prop, v);
+    if (v != 0)
+    {
+        auto o = getObject(v);
+
+        std::vector<ScicosID> children;
+        getObjectProperty(o->id(), o->kind(), ref_prop, children);
+
+        std::vector<ScicosID>::iterator it = std::find(children.begin(), children.end(), uid);
+        if (it != children.end())
+        {
+            children.erase(it);
+        }
+
+        setObjectProperty(o->id(), o->kind(), ref_prop, children);
+    }
+}
+
+void Controller::unlink(ScicosID uid, kind_t k, object_properties_t uid_prop, object_properties_t ref_prop)
+{
+    ScicosID v;
+    getObjectProperty(uid, k, uid_prop, v);
+    if (v != 0)
+    {
+        auto o = getObject(v);
+        // Find which end of the link is connected to the port
+        ScicosID connected_port;
+        getObjectProperty(o->id(), o->kind(), ref_prop, connected_port);
+        if (connected_port == uid)
+        {
+            setObjectProperty(o->id(), o->kind(), ref_prop, 0ll);
+        }
+    }
+}
+
+void Controller::deleteVector(ScicosID uid, kind_t k, object_properties_t uid_prop)
+{
+    std::vector<ScicosID> children;
+    getObjectProperty(uid, k, uid_prop, children);
+
+    for (ScicosID id : children)
+    {
+        deleteObject(id);
+    }
+}
+
 ScicosID Controller::cloneObject(std::map<ScicosID, ScicosID>& mapped, ScicosID uid)
 {
     auto initial = getObject(uid);
@@ -282,7 +304,7 @@ void Controller::deepCloneVector(std::map<ScicosID, ScicosID>& mapped, ScicosID
     std::vector<ScicosID> cloned;
     cloned.reserve(v.size());
 
-    for (const ScicosID& id : v)
+    for (const ScicosID & id : v)
     {
 
         std::map<ScicosID, ScicosID>::iterator it = mapped.find(id);
index a6b487f..ce193da 100644 (file)
@@ -54,6 +54,10 @@ private:
         }
 
         this->m_connectedSignals = connectedSignals;
+        if (m_connectedSignals.empty())
+        {
+            m_connectedSignals = std::vector<ScicosID> (1, 0);
+        }
         return SUCCESS;
     }
 
index f023b21..7b05411 100644 (file)
@@ -101,7 +101,12 @@ class BaseAdapter : public types::UserType
 
 public:
     BaseAdapter(std::shared_ptr<Adaptee> adaptee) : m_adaptee(adaptee) {};
-    BaseAdapter(const BaseAdapter& adapter) : m_adaptee(adapter.m_adaptee) {};
+    BaseAdapter(const BaseAdapter& adapter) : m_adaptee(0)
+    {
+        Controller controller = Controller();
+        ScicosID id = controller.cloneObject(adapter.getAdaptee()->id());
+        m_adaptee = std::static_pointer_cast<Adaptee>(controller.getObject(id));
+    };
     ~BaseAdapter()
     {
         // do not use adaptee.unique() as adaptee has not been destroyed yet
@@ -165,9 +170,22 @@ public:
         index = 1;
         for (typename property<Adaptor>::props_t_it it = properties.begin(); it != properties.end(); ++it, ++index)
         {
-            tlist->set(index, it->get(*static_cast<Adaptor*>(this), controller));
+            // In a ModelAdapter, the 'rpar' property (number 13) can return '0', in which case do not set the field
+            if (index != 13)
+            {
+                tlist->set(index, it->get(*static_cast<Adaptor*>(this), controller));
+            }
+            else
+            {
+                types::InternalType* pVal = it->get(*static_cast<Adaptor*>(this), controller);
+                if (pVal != 0)
+                {
+                    tlist->set(index, pVal);
+                }
+            }
         }
 
+        tlist->IncreaseRef();
         return tlist;
     }
 
@@ -209,9 +227,6 @@ public:
         index = 1;
         for (typename property<Adaptor>::props_t_it it = properties.begin(); it != properties.end(); ++it, ++index)
         {
-            // DEBUG LOG:
-            // std::wcerr << Adaptor::getSharedTypeStr() << L" set " << it->name << std::endl;
-
             bool status = it->set(*static_cast<Adaptor*>(this), current->get(index), controller);
             if (!status)
             {
@@ -241,10 +256,7 @@ private:
 
     types::InternalType* clone()
     {
-        Controller controller = Controller();
-        ScicosID id = controller.cloneObject(getAdaptee()->id());
-        std::shared_ptr<Adaptee> adaptee = std::static_pointer_cast<Adaptee>(controller.getObject(id));
-        return new Adaptor(adaptee);
+        return new Adaptor(*static_cast<Adaptor*>(this));
     }
 
     /*
index accc2fd..e8d86aa 100644 (file)
@@ -11,6 +11,7 @@
  */
 
 #include <string>
+#include <memory>
 
 #include "internal.hxx"
 #include "list.hxx"
@@ -22,6 +23,7 @@
 #include "Controller.hxx"
 #include "model/Block.hxx"
 #include "BlockAdapter.hxx"
+#include "DiagramAdapter.hxx"
 #include "GraphicsAdapter.hxx"
 #include "ModelAdapter.hxx"
 
@@ -37,6 +39,8 @@ namespace view_scilab
 namespace
 {
 
+std::wstring rpar(L"rpar");
+
 struct graphics
 {
     static types::InternalType* get(const BlockAdapter& adaptor, const Controller& controller)
@@ -57,13 +61,31 @@ struct model
     static types::InternalType* get(const BlockAdapter& adaptor, const Controller& controller)
     {
         ModelAdapter localAdaptor = ModelAdapter(adaptor.getAdaptee());
-        return localAdaptor.getAsTList(new types::MList(), controller);
+        types::MList* ret = localAdaptor.getAsTList(new types::MList(), controller)->getAs<types::MList>();
+
+        // If the Block is a SuperBlock, set its 'rpar' property with the saved Diagram
+        DiagramAdapter* rpar_content = adaptor.getRpar()->getAs<DiagramAdapter>();
+        if (rpar_content != 0 && localAdaptor.getDiagram() == 0)
+        {
+            // Decrease rpar_content's ref count to counter the increases from the other Adapters
+            rpar_content->DecreaseRef();
+            rpar_content->DecreaseRef();
+            ret->set(rpar, rpar_content);
+        }
+
+        return ret;
     }
 
     static bool set(BlockAdapter& adaptor, types::InternalType* v, Controller& controller)
     {
         ModelAdapter localAdaptor = ModelAdapter(adaptor.getAdaptee());
-        return localAdaptor.setAsTList(v, controller);
+        if (!localAdaptor.setAsTList(v, controller))
+        {
+            return false;
+        }
+
+        adaptor.setRpar(localAdaptor.getDiagram());
+        return true;
     }
 };
 
@@ -127,8 +149,9 @@ struct doc
 template<> property<BlockAdapter>::props_t property<BlockAdapter>::fields = property<BlockAdapter>::props_t();
 
 BlockAdapter::BlockAdapter(std::shared_ptr<org_scilab_modules_scicos::model::Block> adaptee) :
-    doc_content(new types::List()),
-    BaseAdapter<BlockAdapter, org_scilab_modules_scicos::model::Block>(adaptee)
+    BaseAdapter<BlockAdapter, org_scilab_modules_scicos::model::Block>(adaptee),
+    rpar_content(nullptr),
+    doc_content(new types::List())
 {
     if (property<BlockAdapter>::properties_have_not_been_set())
     {
@@ -141,13 +164,20 @@ BlockAdapter::BlockAdapter(std::shared_ptr<org_scilab_modules_scicos::model::Blo
 }
 
 BlockAdapter::BlockAdapter(const BlockAdapter& adapter) :
-    doc_content(adapter.getDocContent()),
-    BaseAdapter<BlockAdapter, org_scilab_modules_scicos::model::Block>(adapter)
+    BaseAdapter<BlockAdapter, org_scilab_modules_scicos::model::Block>(adapter),
+    rpar_content(adapter.getRpar()),
+    doc_content(adapter.getDocContent())
 {
 }
 
 BlockAdapter::~BlockAdapter()
 {
+    if (rpar_content != nullptr)
+    {
+        rpar_content->DecreaseRef();
+        rpar_content->killMe();
+    }
+
     doc_content->DecreaseRef();
     doc_content->killMe();
 }
@@ -156,11 +186,39 @@ std::wstring BlockAdapter::getTypeStr()
 {
     return getSharedTypeStr();
 }
+
 std::wstring BlockAdapter::getShortTypeStr()
 {
     return getSharedTypeStr();
 }
 
+types::InternalType* BlockAdapter::getRpar() const
+{
+    if (rpar_content != nullptr)
+    {
+        rpar_content->IncreaseRef();
+    }
+    return rpar_content;
+}
+
+void BlockAdapter::setRpar(types::InternalType* v)
+{
+    if (v != nullptr)
+    {
+        // The old 'rpar_content' needs to be freed after setting it to 'v'
+        types::InternalType* temp = rpar_content;
+
+        v->IncreaseRef();
+        rpar_content = v;
+
+        if (temp != nullptr)
+        {
+            temp->DecreaseRef();
+            temp->killMe();
+        }
+    }
+}
+
 types::InternalType* BlockAdapter::getDocContent() const
 {
     doc_content->IncreaseRef();
index d410f22..93d18eb 100644 (file)
@@ -14,6 +14,7 @@
 #define BLOCKADAPTER_HXX_
 
 #include <string>
+#include <memory>
 
 #include "utilities.hxx"
 #include "BaseAdapter.hxx"
@@ -39,10 +40,15 @@ public:
     std::wstring getTypeStr();
     std::wstring getShortTypeStr();
 
+    types::InternalType* getRpar() const;
+    void setRpar(types::InternalType* v);
+
     types::InternalType* getDocContent() const;
     void setDocContent(types::InternalType* v);
 
 private:
+    types::InternalType* rpar_content;
+
     types::InternalType* doc_content;
 };
 
index e53dee5..395e70d 100644 (file)
@@ -13,6 +13,7 @@
 #include <string>
 #include <vector>
 #include <sstream>
+#include <memory>
 
 #include "internal.hxx"
 #include "double.hxx"
@@ -27,9 +28,9 @@
 #include "DiagramAdapter.hxx"
 #include "Adapters.hxx"
 #include "ParamsAdapter.hxx"
-#include "TextAdapter.hxx"
 #include "BlockAdapter.hxx"
 #include "LinkAdapter.hxx"
+#include "TextAdapter.hxx"
 #include "model/BaseObject.hxx"
 
 extern "C" {
@@ -65,62 +66,12 @@ struct objs
 
     static types::InternalType* get(const DiagramAdapter& adaptor, const Controller& controller)
     {
-        // FIXME: get all children of the Diagram and return them as a list
-        model::Diagram* adaptee = adaptor.getAdaptee().get();
-
-        std::vector<ScicosID> children;
-        controller.getObjectProperty(adaptee->id(), DIAGRAM, CHILDREN, children);
-
-        types::List* o = new types::List();
-
-        int link_number = 0;
-        Controller newController = Controller();
-        for (int i = 0; i < static_cast<int>(children.size()); ++i)
-        {
-            model::BaseObject* item = newController.getObject(children[i]).get();
-            switch (item->kind())
-            {
-                case ANNOTATION:
-                {
-                    model::Annotation* annotation = static_cast<model::Annotation*>(item);
-                    TextAdapter* localAdaptor = new TextAdapter(std::shared_ptr<model::Annotation>(annotation));
-                    o->set(i, localAdaptor);
-                    continue;
-                }
-                case BLOCK:
-                {
-                    model::Block* block = static_cast<model::Block*>(item);
-                    BlockAdapter* localAdaptor = new BlockAdapter(std::shared_ptr<model::Block>(block));
-                    o->set(i, localAdaptor);
-                    continue;
-                }
-                case LINK:
-                {
-                    model::Link* link = static_cast<model::Link*>(item);
-                    LinkAdapter* localAdaptor = new LinkAdapter(std::shared_ptr<model::Link>(link));
-
-                    // In case a Link points to a Block that has not been added yet,
-                    // retrieve the 'from' and 'to' values from the Diagram Adapter if they have been saved,
-                    // without updating the model
-                    if (adaptor.getFromSize() != 0)
-                    {
-                        localAdaptor->setFrom(children[i], adaptor.getFrom(link_number), newController, false);
-                        localAdaptor->setTo(children[i], adaptor.getTo(link_number), newController, false);
-                        link_number++;
-                    }
-                    o->set(i, localAdaptor);
-                    continue;
-                }
-                default:
-                    return 0;
-            }
-        }
-        return o;
+        return adaptor.getListObjects();
     }
 
     static bool set(DiagramAdapter& adaptor, types::InternalType* v, Controller& controller)
     {
-        // FIXME implement, decode the list and set all children of the Diagram
+        // Decode the list and set all children of the Diagram
         if (v->getType() != types::InternalType::ScilabList)
         {
             return false;
@@ -133,11 +84,18 @@ struct objs
         // Clear the children list before the loop to reset the diagram children
         // and clear the old Links information
         std::vector<ScicosID> diagramChildren;
-        controller.setObjectProperty(adaptee->id(), DIAGRAM, CHILDREN, diagramChildren);
-        adaptor.clearFrom();
-        adaptor.clearTo();
+        controller.getObjectProperty(adaptee->id(), DIAGRAM, CHILDREN, diagramChildren);
+        for (ScicosID id : diagramChildren)
+        {
+            auto o = controller.getObject(id);
+            controller.setObjectProperty(id, o->kind(), PARENT_DIAGRAM, 0ll);
+        }
+        diagramChildren.clear();
+        adaptor.getFrom().clear();
+        adaptor.getTo().clear();
+
+        // Set the children to the right IDs
         std::vector<LinkAdapter*> linkListView;
-        std::vector<ScicosID> linkListModel;
         for (int i = 0; i < list->getSize(); ++i)
         {
             if (list->get(i)->getType() != types::InternalType::ScilabUserType)
@@ -145,7 +103,6 @@ struct objs
                 return false;
             }
 
-            // Find the type of the input object through Adapters' mapping.
             const Adapters::adapters_index_t adapter_index = Adapters::instance().lookup_by_typename(list->get(i)->getShortTypeStr());
 
             // Then, each adapter gets linked to the diagram through its adaptee (PARENT_DIAGRAM)
@@ -156,70 +113,62 @@ struct objs
                 case Adapters::BLOCK_ADAPTER:
                 {
                     BlockAdapter* modelElement = list->get(i)->getAs<BlockAdapter>();
-                    model::Block* subAdaptee = modelElement->getAdaptee().get();
 
-                    id = subAdaptee->id();
+                    id = modelElement->getAdaptee()->id();
 
-                    controller.setObjectProperty(id, BLOCK, PARENT_DIAGRAM, adaptee);
-                    controller.getObjectProperty(adaptee->id(), DIAGRAM, CHILDREN, diagramChildren);
+                    controller.setObjectProperty(id, BLOCK, PARENT_DIAGRAM, adaptee->id());
                     diagramChildren.push_back(id);
-                    controller.setObjectProperty(adaptee->id(), DIAGRAM, CHILDREN, diagramChildren);
                     break;
                 }
                 case Adapters::LINK_ADAPTER:
                 {
                     LinkAdapter* modelElement = list->get(i)->getAs<LinkAdapter>();
-                    model::Link* subAdaptee = modelElement->getAdaptee().get();
 
-                    id = subAdaptee->id();
+                    id = modelElement->getAdaptee()->id();
 
-                    controller.setObjectProperty(id, LINK, PARENT_DIAGRAM, adaptee);
+                    controller.setObjectProperty(id, LINK, PARENT_DIAGRAM, adaptee->id());
 
                     // Hold Links information, to try the linking at model-level once all the elements have been added to the Diagram
                     linkListView.push_back(modelElement);
-                    linkListModel.push_back(id);
 
-                    controller.getObjectProperty(adaptee->id(), DIAGRAM, CHILDREN, diagramChildren);
                     diagramChildren.push_back(id);
-                    controller.setObjectProperty(adaptee->id(), DIAGRAM, CHILDREN, diagramChildren);
                     break;
                 }
                 case Adapters::TEXT_ADAPTER:
                 {
                     TextAdapter* modelElement = list->get(i)->getAs<TextAdapter>();
-                    model::Annotation* subAdaptee = modelElement->getAdaptee().get();
 
-                    id = subAdaptee->id();
+                    id = modelElement->getAdaptee()->id();
 
                     controller.setObjectProperty(id, ANNOTATION, PARENT_DIAGRAM, adaptee->id());
-                    controller.getObjectProperty(adaptee->id(), DIAGRAM, CHILDREN, diagramChildren);
                     diagramChildren.push_back(id);
-                    controller.setObjectProperty(adaptee->id(), DIAGRAM, CHILDREN, diagramChildren);
                     break;
                 }
                 default:
                     return false;
             }
         }
+        controller.setObjectProperty(adaptee->id(), DIAGRAM, CHILDREN, diagramChildren);
+
+        adaptor.setListObjects(v);
 
         // Do the linking at model-level
         for (int i = 0; i < static_cast<int>(linkListView.size()); ++i)
         {
             // Trigger 'from' and 'to' properties
-            std::vector<double> from_content = linkListView[i]->getFrom();
-            if (!linkListView[i]->setFrom(linkListModel[i], from_content, controller, true))
+            link_t from_content = linkListView[i]->getFrom();
+            if (!linkListView[i]->setFrom(from_content, controller))
             {
                 return false;
             }
-            adaptor.setFrom(from_content);
-            std::vector<double> to_content = linkListView[i]->getTo();
-            if (!linkListView[i]->setTo(linkListModel[i], to_content, controller, true))
+            adaptor.getFrom().push_back(from_content);
+            link_t to_content = linkListView[i]->getTo();
+            if (!linkListView[i]->setTo(to_content, controller))
             {
                 return false;
             }
-            adaptor.setTo(to_content);
+            adaptor.getTo().push_back(to_content);
         }
-
         return true;
     }
 };
@@ -302,7 +251,11 @@ struct contrib
 template<> property<DiagramAdapter>::props_t property<DiagramAdapter>::fields = property<DiagramAdapter>::props_t();
 
 DiagramAdapter::DiagramAdapter(std::shared_ptr<org_scilab_modules_scicos::model::Diagram> adaptee) :
-    BaseAdapter<DiagramAdapter, org_scilab_modules_scicos::model::Diagram>(adaptee)
+    BaseAdapter<DiagramAdapter, org_scilab_modules_scicos::model::Diagram>(adaptee),
+    list_objects(new types::List()),
+    from_vec(),
+    to_vec(),
+    contrib_content(new types::List())
 {
     if (property<DiagramAdapter>::properties_have_not_been_set())
     {
@@ -312,24 +265,37 @@ DiagramAdapter::DiagramAdapter(std::shared_ptr<org_scilab_modules_scicos::model:
         property<DiagramAdapter>::add_property(L"version", &version::get, &version::set);
         property<DiagramAdapter>::add_property(L"contrib", &contrib::get, &contrib::set);
     }
-
-    contrib_content = new types::List();
 }
 
 DiagramAdapter::DiagramAdapter(const DiagramAdapter& adapter) :
-    BaseAdapter<DiagramAdapter, org_scilab_modules_scicos::model::Diagram>(adapter)
+    BaseAdapter<DiagramAdapter, org_scilab_modules_scicos::model::Diagram>(adapter),
+    list_objects(adapter.getListObjects()),
+    from_vec(adapter.from_vec),
+    to_vec(adapter.to_vec),
+    contrib_content(adapter.getContribContent())
 {
-    // When cloning a DiagramAdapter, clone its Links information as well
-    for (int i = 0; i < static_cast<int>(from_vec.size()); ++i)
-    {
-        setFrom(adapter.getFrom(i));
-        setTo(adapter.getTo(i));
-    }
 }
 
 DiagramAdapter::~DiagramAdapter()
 {
-    delete contrib_content;
+    // Unlink the diagram's children if necessary
+    Controller controller;
+    std::vector<ScicosID> diagramChildren;
+    if (getAdaptee() != 0)
+    {
+        controller.getObjectProperty(getAdaptee()->id(), DIAGRAM, CHILDREN, diagramChildren);
+        for (ScicosID id : diagramChildren)
+        {
+            auto o = controller.getObject(id);
+            controller.setObjectProperty(id, o->kind(), PARENT_DIAGRAM, 0ll);
+        }
+    }
+
+    list_objects->DecreaseRef();
+    list_objects->killMe();
+
+    contrib_content->DecreaseRef();
+    contrib_content->killMe();
 }
 
 std::wstring DiagramAdapter::getTypeStr()
@@ -343,48 +309,44 @@ std::wstring DiagramAdapter::getShortTypeStr()
 
 types::InternalType* DiagramAdapter::getContribContent() const
 {
-    return contrib_content->clone();
+    contrib_content->IncreaseRef();
+    return contrib_content;
 }
 
 void DiagramAdapter::setContribContent(types::InternalType* v)
 {
-    delete contrib_content;
-    contrib_content = v->clone();
-}
+    contrib_content->DecreaseRef();
+    contrib_content->killMe();
 
-std::vector<double> DiagramAdapter::getFrom(int link_number) const
-{
-    return from_vec[link_number];
+    v->IncreaseRef();
+    contrib_content = v;
 }
 
-int DiagramAdapter::getFromSize() const
+types::InternalType* DiagramAdapter::getListObjects() const
 {
-    return static_cast<int>(from_vec.size());
+    return list_objects;
 }
 
-void DiagramAdapter::setFrom(const std::vector<double>& from_content)
+void DiagramAdapter::setListObjects(types::InternalType* v)
 {
-    from_vec.push_back(from_content);
-}
+    // The old 'list_objects' needs to be freed after setting it to 'v'
+    types::InternalType* temp = list_objects;
 
-void DiagramAdapter::clearFrom()
-{
-    from_vec.clear();
-}
+    v->IncreaseRef();
+    list_objects = v;
 
-std::vector<double> DiagramAdapter::getTo(int link_number) const
-{
-    return to_vec[link_number];
+    temp->DecreaseRef();
+    temp->killMe();
 }
 
-void DiagramAdapter::setTo(const std::vector<double>& to_content)
+std::vector<link_t>& DiagramAdapter::getFrom()
 {
-    to_vec.push_back(to_content);
+    return from_vec;
 }
 
-void DiagramAdapter::clearTo()
+std::vector<link_t>& DiagramAdapter::getTo()
 {
-    to_vec.clear();
+    return to_vec;
 }
 
 } /* namespace view_scilab */
index bcda6af..d69acf7 100644 (file)
 #define DIAGRAMADAPTER_HXX_
 
 #include <string>
+#include <vector>
+#include <memory>
 
 #include "utilities.hxx"
+#include "adapters_utilities.hxx"
 #include "BaseAdapter.hxx"
 #include "model/Diagram.hxx"
 
@@ -39,21 +42,22 @@ public:
     std::wstring getTypeStr();
     std::wstring getShortTypeStr();
 
+    types::InternalType* getListObjects() const;
+    void setListObjects(types::InternalType* v);
+
+    std::vector<link_t>& getFrom();
+    std::vector<link_t>& getTo();
+
     types::InternalType* getContribContent() const;
     void setContribContent(types::InternalType* v);
 
-    std::vector<double> getFrom(int link_number) const;
-    int getFromSize() const;
-    void setFrom(const std::vector<double>& from_content);
-    void clearFrom();
-    std::vector<double> getTo(int link_number) const;
-    void setTo(const std::vector<double>& to_content);
-    void clearTo();
-
 private:
+    types::InternalType* list_objects;
+
+    std::vector<link_t> from_vec;
+    std::vector<link_t> to_vec;
+
     types::InternalType* contrib_content;
-    std::vector< std::vector<double> > from_vec;
-    std::vector< std::vector<double> > to_vec;
 };
 
 } /* namespace view_scilab */
index b6cbf4e..41e7cc0 100644 (file)
@@ -13,6 +13,7 @@
 #include <string>
 #include <vector>
 #include <sstream>
+#include <memory>
 
 #include "list.hxx"
 #include "double.hxx"
@@ -519,8 +520,8 @@ struct style
 template<> property<GraphicsAdapter>::props_t property<GraphicsAdapter>::fields = property<GraphicsAdapter>::props_t();
 
 GraphicsAdapter::GraphicsAdapter(std::shared_ptr<model::Block> adaptee) :
-    gr_i_content(types::Double::Empty()),
-    BaseAdapter<GraphicsAdapter, org_scilab_modules_scicos::model::Block>(adaptee)
+    BaseAdapter<GraphicsAdapter, org_scilab_modules_scicos::model::Block>(adaptee),
+    gr_i_content(types::Double::Empty())
 {
     if (property<GraphicsAdapter>::properties_have_not_been_set())
     {
@@ -547,8 +548,8 @@ GraphicsAdapter::GraphicsAdapter(std::shared_ptr<model::Block> adaptee) :
 }
 
 GraphicsAdapter::GraphicsAdapter(const GraphicsAdapter& adapter) :
-    gr_i_content(adapter.getGrIContent()),
-    BaseAdapter<GraphicsAdapter, org_scilab_modules_scicos::model::Block>(adapter)
+    BaseAdapter<GraphicsAdapter, org_scilab_modules_scicos::model::Block>(adapter),
+    gr_i_content(adapter.getGrIContent())
 {
 }
 
index 341c4dc..9e04c11 100644 (file)
@@ -14,6 +14,7 @@
 #define GRAPHICSADAPTER_HXX_
 
 #include <string>
+#include <memory>
 
 #include "BaseAdapter.hxx"
 #include "model/Block.hxx"
@@ -40,6 +41,7 @@ public:
 
     types::InternalType* getGrIContent() const;
     void setGrIContent(types::InternalType* v);
+
 private:
     types::InternalType* gr_i_content;
 };
index 8cd9934..4f75458 100644 (file)
@@ -14,6 +14,7 @@
 #include <vector>
 #include <iterator>
 #include <algorithm>
+#include <memory>
 
 #include "internal.hxx"
 #include "list.hxx"
@@ -364,12 +365,6 @@ types::Double* getLinkEnd(const LinkAdapter& adaptor, const Controller& controll
     return o;
 }
 
-enum startOrEnd
-{
-    Start = 0,
-    End = 1
-};
-
 /*
  * Connectivity is ensured if 'port' is of the desired type or if either of the concerned blocks is a split block,
  * because they are connectable to anything
@@ -399,7 +394,7 @@ bool checkConnectivity(const int neededType, const ScicosID port, const ScicosID
     return true;
 }
 
-void setLinkEnd(const ScicosID id, Controller& controller, const object_properties_t end, const std::vector<double>& v)
+void setLinkEnd(const ScicosID id, Controller& controller, const object_properties_t end, const link_t& v)
 {
 
     ScicosID from;
@@ -426,7 +421,7 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
     }
     ScicosID unconnected = 0;
 
-    if (v.size() == 0 || (v[0] == 0 || v[1] == 0))
+    if (v.block == 0 || v.port == 0)
     {
         // We want to set an empty link
         if (concernedPort == 0)
@@ -452,21 +447,18 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
     }
 
     // Connect the new one
-    int blk  = static_cast<int>(v[0]);
-    int port = static_cast<int>(v[1]);
-    int kind = static_cast<int>(v[2]);
-    if (kind != Start && kind != End)
+    if (v.kind != Start && v.kind != End)
     {
         return;
     }
     // kind == 0: trying to set the start of the link (output port)
     // kind == 1: trying to set the end of the link (input port)
 
-    if (blk > static_cast<int>(children.size()))
+    if (v.block > children.size())
     {
         return; // Trying to link to a non-existing block
     }
-    ScicosID blkID = children[blk - 1];
+    ScicosID blkID = children[v.block - 1];
 
     // Check that the ID designates a BLOCK (and not an ANNOTATION)
     if (controller.getObject(blkID)->kind() != BLOCK)
@@ -475,9 +467,8 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
     }
 
     std::vector<ScicosID> sourceBlockPorts;
-    int nBlockPorts;
     bool newPortIsImplicit = false;
-    int newPortKind = static_cast<int>(model::PORT_UNDEF);
+    enum model::portKind newPortKind = model::PORT_UNDEF;
     int linkType;
     controller.getObjectProperty(id, LINK, KIND, linkType);
     if (linkType == model::activation)
@@ -487,7 +478,7 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
         controller.getObjectProperty(blkID, BLOCK, EVENT_INPUTS, evtin);
         controller.getObjectProperty(blkID, BLOCK, EVENT_OUTPUTS, evtout);
 
-        if (kind == Start)
+        if (v.kind == Start)
         {
             if (otherPort != 0)
             {
@@ -496,7 +487,7 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
                     return;
                 }
             }
-            newPortKind = static_cast<int>(model::PORT_EOUT);
+            newPortKind = model::PORT_EOUT;
             sourceBlockPorts = evtout;
         }
         else
@@ -508,7 +499,7 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
                     return;
                 }
             }
-            newPortKind = static_cast<int>(model::PORT_EIN);
+            newPortKind = model::PORT_EIN;
             sourceBlockPorts = evtin;
         }
 
@@ -522,7 +513,7 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
 
         if (linkType == model::regular)
         {
-            if (kind == Start)
+            if (v.kind == Start)
             {
                 if (otherPort != 0)
                 {
@@ -531,7 +522,7 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
                         return;
                     }
                 }
-                newPortKind = static_cast<int>(model::PORT_OUT);
+                newPortKind = model::PORT_OUT;
                 sourceBlockPorts = out;
             }
             else
@@ -543,7 +534,7 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
                         return;
                     }
                 }
-                newPortKind = static_cast<int>(model::PORT_IN);
+                newPortKind = model::PORT_IN;
                 sourceBlockPorts = in;
             }
 
@@ -583,14 +574,14 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
         controller.setObjectProperty(concernedPort, PORT, CONNECTED_SIGNALS, unconnected);
     }
 
-    nBlockPorts = static_cast<int>(sourceBlockPorts.size());
-    if (nBlockPorts >= port)
+    unsigned int nBlockPorts = static_cast<int>(sourceBlockPorts.size());
+    if (nBlockPorts >= v.port)
     {
-        concernedPort = sourceBlockPorts[port - 1];
+        concernedPort = sourceBlockPorts[v.port - 1];
     }
     else
     {
-        while (nBlockPorts < port) // Create as many ports as necessary
+        while (nBlockPorts < v.port) // Create as many ports as necessary
         {
             concernedPort = controller.createObject(PORT);
             controller.setObjectProperty(concernedPort, PORT, IMPLICIT, newPortIsImplicit);
@@ -605,7 +596,7 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
             std::vector<ScicosID> concernedPorts;
             if (linkType == model::activation)
             {
-                if (kind == Start)
+                if (v.kind == Start)
                 {
                     controller.getObjectProperty(blkID, BLOCK, EVENT_OUTPUTS, concernedPorts);
                     concernedPorts.push_back(concernedPort);
@@ -620,7 +611,7 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
             }
             else // model::regular || model::implicit
             {
-                if (kind == Start)
+                if (v.kind == Start)
                 {
                     controller.getObjectProperty(blkID, BLOCK, OUTPUTS, concernedPorts);
                     concernedPorts.push_back(concernedPort);
@@ -653,6 +644,35 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
     controller.setObjectProperty(id, LINK, end, concernedPort);
 }
 
+// check if the link is valid
+bool is_valid(types::Double* o)
+{
+    if (o->getSize() >= 2)
+    {
+        if (floor(o->get(0)) != o->get(0) || floor(o->get(1)) != o->get(1))
+        {
+            return false; // Must be an integer value
+        }
+        if (o->get(0) < 0 || o->get(1) < 0)
+        {
+            return false; // Must be positive
+        }
+    }
+    if (o->getSize() == 3)
+    {
+        if (floor(o->get(2)) != o->get(2))
+        {
+            return false; // Must be an integer value
+        }
+        if (o->get(2) < 0)
+        {
+            return false; // Must be positive
+        }
+    }
+
+    return true;
+}
+
 struct from
 {
 
@@ -661,21 +681,18 @@ struct from
         // silent unused parameter warnings
         (void) controller;
 
-        std::vector<double> from_content;
-        from_content = adaptor.getFrom();
+        link_t from_content = adaptor.getFrom();
         double* data;
         types::Double* o = new types::Double(1, 3, &data);
 
-        data[0] = from_content[0];
-        data[1] = from_content[1];
-        data[2] = from_content[2];
+        data[0] = from_content.block;
+        data[1] = from_content.port;
+        data[2] = from_content.kind;
         return o;
     }
 
     static bool set(LinkAdapter& adaptor, types::InternalType* v, Controller& controller)
     {
-        ScicosID adaptee = adaptor.getAdaptee()->id();
-
         if (v->getType() != types::InternalType::ScilabDouble)
         {
             return false;
@@ -687,19 +704,25 @@ struct from
         {
             return false;
         }
-        std::vector<double> from_content (3, 0);
+
+        if (!is_valid(current))
+        {
+            return false;
+        }
+
+        link_t from_content {0, 0, Start};
         if (current->getSize() >= 2)
         {
-            // By default of the third element, 'from' designates an output, so from_content[2] = 0
-            from_content[0] = current->get(0);
-            from_content[1] = current->get(1);
+            from_content.block = current->get(0);
+            from_content.port = current->get(1);
+            // By default, kind designates an output (set to 0)
         }
         if (current->getSize() == 3)
         {
-            from_content[2] = current->get(2);
+            from_content.kind = (current->get(2) == 0.) ? Start : End;
         }
 
-        return adaptor.setFrom(adaptee, from_content, controller);
+        return adaptor.setFrom(from_content, controller);
     }
 };
 
@@ -711,21 +734,18 @@ struct to
         // silent unused parameter warnings
         (void) controller;
 
-        std::vector<double> to_content;
-        to_content = adaptor.getTo();
+        link_t to_content = adaptor.getTo();
         double* data;
         types::Double* o = new types::Double(1, 3, &data);
 
-        data[0] = to_content[0];
-        data[1] = to_content[1];
-        data[2] = to_content[2];
+        data[0] = to_content.block;
+        data[1] = to_content.port;
+        data[2] = to_content.kind;
         return o;
     }
 
     static bool set(LinkAdapter& adaptor, types::InternalType* v, Controller& controller)
     {
-        ScicosID adaptee = adaptor.getAdaptee()->id();
-
         if (v->getType() != types::InternalType::ScilabDouble)
         {
             return false;
@@ -737,20 +757,25 @@ struct to
         {
             return false;
         }
-        std::vector<double> to_content (3, 0);
+
+        if (!is_valid(current))
+        {
+            return false;
+        }
+
+        link_t to_content {0, 0, End};
         if (current->getSize() >= 2)
         {
-            // By default of the third element, 'from' designates an output, so to_content[2] = 1
-            to_content[0] = current->get(0);
-            to_content[1] = current->get(1);
-            to_content[2] = 1;
+            to_content.block = current->get(0);
+            to_content.port = current->get(1);
+            // By default, kind designates an input (set to 1)
         }
         if (current->getSize() == 3)
         {
-            to_content[2] = current->get(2);
+            to_content.kind = (current->get(2) == 0.) ? Start : End;
         }
 
-        return adaptor.setTo(adaptee, to_content, controller);
+        return adaptor.setTo(to_content, controller);
     }
 };
 
@@ -759,7 +784,9 @@ struct to
 template<> property<LinkAdapter>::props_t property<LinkAdapter>::fields = property<LinkAdapter>::props_t();
 
 LinkAdapter::LinkAdapter(std::shared_ptr<org_scilab_modules_scicos::model::Link> adaptee) :
-    BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>(adaptee)
+    BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>(adaptee),
+    m_from {0, 0, Start},
+m_to {0, 0, End}
 {
     if (property<LinkAdapter>::properties_have_not_been_set())
     {
@@ -773,30 +800,24 @@ LinkAdapter::LinkAdapter(std::shared_ptr<org_scilab_modules_scicos::model::Link>
         property<LinkAdapter>::add_property(L"to", &to::get, &to::set);
     }
 
-    from_content = std::vector<double> (3);
-    to_content   = std::vector<double> (3);
-
     // If the Link has been added to a diagram, the following lines will dig up its information at model-level
-    Controller controller = Controller();
-    types::Double* modelFrom = getLinkEnd(*this, controller, SOURCE_PORT);
-    types::Double* modelTo   = getLinkEnd(*this, controller, DESTINATION_PORT);
-    from_content[0] = modelFrom->get(0);
-    from_content[1] = modelFrom->get(1);
-    from_content[2] = modelFrom->get(2);
-    to_content[0]   = modelTo->get(0);
-    to_content[1]   = modelTo->get(1);
-    to_content[2]   = modelTo->get(2);
+    Controller controller;
+    types::Double* current = getLinkEnd(*this, controller, SOURCE_PORT);
+    m_from.block = current->get(0);
+    m_from.port = current->get(1);
+    m_from.kind = (current->get(2) == 0.) ? Start : End;
+
+    current   = getLinkEnd(*this, controller, DESTINATION_PORT);
+    m_to.block = current->get(0);
+    m_to.port = current->get(1);
+    m_to.kind = (current->get(2) == 0.) ? Start : End;
 }
 
 LinkAdapter::LinkAdapter(const LinkAdapter& adapter) :
-    BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>(adapter)
+    BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>(adapter),
+    m_from(adapter.getFrom()),
+    m_to(adapter.getTo())
 {
-    Controller controller;
-
-    // When cloning a LinkAdapter, clone its 'from' and 'to' information as well.
-    // setFrom() will propagate the information at model-level if necessary.
-    setFrom(getAdaptee()->id(), adapter.getFrom(), controller);
-    setTo(getAdaptee()->id(), adapter.getTo(), controller);
 }
 
 LinkAdapter::~LinkAdapter()
@@ -812,91 +833,45 @@ std::wstring LinkAdapter::getShortTypeStr()
     return getSharedTypeStr();
 }
 
-std::vector<double> LinkAdapter::getFrom() const
+link_t LinkAdapter::getFrom() const
 {
-    return from_content;
+    return m_from;
 }
 
-bool LinkAdapter::setFrom(const ScicosID id, const std::vector<double>& v, Controller& controller, const bool model_level)
+bool LinkAdapter::setFrom(const link_t& v, Controller& controller)
 {
-    if (v.size() >= 2)
-    {
-        if (floor(v[0]) != v[0] || floor(v[1]) != v[1])
-        {
-            return false; // Must be an integer value
-        }
-        if (v[0] < 0 || v[1] < 0)
-        {
-            return false; // Must be positive
-        }
-    }
-    if (v.size() == 3)
-    {
-        if (floor(v[2]) != v[2])
-        {
-            return false; // Must be an integer value
-        }
-        if (v[2] < 0)
-        {
-            return false; // Must be positive
-        }
-    }
-
-    from_content = v;
+    m_from = v;
 
     ScicosID parentDiagram;
-    controller.getObjectProperty(id, LINK, PARENT_DIAGRAM, parentDiagram);
+    controller.getObjectProperty(getAdaptee()->id(), LINK, PARENT_DIAGRAM, parentDiagram);
 
-    if (parentDiagram != 0 && model_level)
+    if (parentDiagram != 0)
     {
         // If the Link has been added to a diagram, do the linking at model-level
         // If the provided values are wrong, the model is not updated but the info is stored in the Adapter for future attempts
-        setLinkEnd(id, controller, SOURCE_PORT, v);
+        setLinkEnd(getAdaptee()->id(), controller, SOURCE_PORT, v);
     }
 
     return true;
 }
 
-std::vector<double> LinkAdapter::getTo() const
+link_t LinkAdapter::getTo() const
 {
-    return to_content;
+    return m_to;
 }
 
-bool LinkAdapter::setTo(const ScicosID id, const std::vector<double>& v, Controller& controller, const bool model_level)
+bool LinkAdapter::setTo(const link_t& v, Controller& controller)
 {
-    if (v.size() >= 2)
-    {
-        if (floor(v[0]) != v[0] || floor(v[1]) != v[1])
-        {
-            return false; // Must be an integer value
-        }
-        if (v[0] < 0 || v[1] < 0)
-        {
-            return false; // Must be positive
-        }
-    }
-    if (v.size() == 3)
-    {
-        if (floor(v[2]) != v[2])
-        {
-            return false; // Must be an integer value
-        }
-        if (v[2] < 0)
-        {
-            return false; // Must be positive
-        }
-    }
-
-    to_content = v;
+    m_to = v;
 
     ScicosID parentDiagram;
-    controller.getObjectProperty(id, LINK, PARENT_DIAGRAM, parentDiagram);
+    controller.getObjectProperty(getAdaptee()->id(), LINK, PARENT_DIAGRAM, parentDiagram);
 
-    if (parentDiagram != 0 && model_level)
+    if (parentDiagram != 0)
     {
         // If the Link has been added to a diagram, do the linking at model-level
         // If the provided values are wrong, the model is not updated but the info is stored in the Adapter for future attempts
-        setLinkEnd(id, controller, DESTINATION_PORT, v);
+        setLinkEnd(getAdaptee()->id(), controller, DESTINATION_PORT, v);
     }
 
     return true;
index bf763d2..8995a6e 100644 (file)
 #define LINKADAPTER_HXX_
 
 #include <string>
+#include <memory>
 
+#include "utilities.hxx"
+#include "adapters_utilities.hxx"
 #include "BaseAdapter.hxx"
 
 #include "model/Link.hxx"
@@ -39,13 +42,14 @@ public:
     std::wstring getTypeStr();
     std::wstring getShortTypeStr();
 
-    std::vector<double> getFrom() const;
-    bool setFrom(const ScicosID id, const std::vector<double>& v, Controller& controller, const bool model_level = true);
-    std::vector<double> getTo() const;
-    bool setTo(const ScicosID id, const std::vector<double>& v, Controller& controller, const bool model_level = true);
+    link_t getFrom() const;
+    bool setFrom(const link_t& v, Controller& controller);
+    link_t getTo() const;
+    bool setTo(const link_t& v, Controller& controller);
+
 private:
-    std::vector<double> from_content;
-    std::vector<double> to_content;
+    link_t m_from;
+    link_t m_to;
 };
 
 } /* namespace view_scilab */
index b92f8de..f80b76d 100644 (file)
@@ -14,6 +14,7 @@
 #include <vector>
 #include <algorithm>
 #include <sstream>
+#include <memory>
 
 #include "int.hxx"
 #include "bool.hxx"
@@ -494,11 +495,12 @@ types::InternalType* getPropList(const ModelAdapter& adaptor, const Controller&
                 for (int j = 0; j < m * n; ++j)
                 {
                     int strLen = prop_content[index + 3 + numberOfIntNeeded];
+
                     wchar_t* str = new wchar_t[strLen + 1];
                     memcpy(str, &prop_content[index + 3 + numberOfIntNeeded + 1], strLen * sizeof(wchar_t));
                     str[strLen] = '\0';
                     pString->set(j, str);
-                    delete str;
+                    delete[] str;
 
                     numberOfIntNeeded += 1 + strLen;
                 }
@@ -868,11 +870,9 @@ struct rpar
 #endif
             return o;
         }
-        else // SuperBlock, return the contained diagram, whose ID is stored in children[0]
+        else // SuperBlock, return the contained diagram
         {
-            // FIXME : leak memory
-            model::Diagram* super = static_cast<model::Diagram*>(controller.getObject(children[0]).get());
-            return new DiagramAdapter(std::shared_ptr<model::Diagram>(super));
+            return adaptor.getDiagram();
         }
     }
 
@@ -907,15 +907,17 @@ struct rpar
                 return false;
             }
 
-            // Translate 'v' to an DiagramAdapter and clone it, updating the new Diagram's children
+            // Translate 'v' to an DiagramAdapter, save it and update the Block's children list
             DiagramAdapter* diagram = v->getAs<DiagramAdapter>();
-            ScicosID clone = controller.cloneObject(diagram->getAdaptee()->id());
+            diagram->IncreaseRef();
+
+            adaptor.setDiagram(diagram);
 
-            // Save the children list, adding the new diagram ID at the beginning
+            // Save the children list, adding the new diagram ID at the end so it is deleted on 'clear'
             std::vector<ScicosID> children;
-            controller.getObjectProperty(clone, DIAGRAM, CHILDREN, children);
-            children.insert(children.begin(), clone);
-            controller.setObjectProperty(adaptee, DIAGRAM, CHILDREN, children);
+            controller.getObjectProperty(diagram->getAdaptee()->id(), DIAGRAM, CHILDREN, children);
+            children.push_back(diagram->getAdaptee()->id());
+            controller.setObjectProperty(adaptee, BLOCK, CHILDREN, children);
 
             // Link the Superblock ports to their inner "port blocks"
             return setInnerBlocksRefs(adaptor, children, controller);
@@ -1320,7 +1322,8 @@ struct uid
 template<> property<ModelAdapter>::props_t property<ModelAdapter>::fields = property<ModelAdapter>::props_t();
 
 ModelAdapter::ModelAdapter(std::shared_ptr<model::Block> adaptee) :
-    BaseAdapter<ModelAdapter, org_scilab_modules_scicos::model::Block>(adaptee)
+    BaseAdapter<ModelAdapter, org_scilab_modules_scicos::model::Block>(adaptee),
+    diagramAdapter(nullptr)
 {
     if (property<ModelAdapter>::properties_have_not_been_set())
     {
@@ -1352,12 +1355,18 @@ ModelAdapter::ModelAdapter(std::shared_ptr<model::Block> adaptee) :
 }
 
 ModelAdapter::ModelAdapter(const ModelAdapter& adapter) :
-    BaseAdapter<ModelAdapter, org_scilab_modules_scicos::model::Block>(adapter)
+    BaseAdapter<ModelAdapter, org_scilab_modules_scicos::model::Block>(adapter),
+    diagramAdapter(adapter.getDiagram())
 {
 }
 
 ModelAdapter::~ModelAdapter()
 {
+    if (diagramAdapter != nullptr)
+    {
+        diagramAdapter->DecreaseRef();
+        diagramAdapter->killMe();
+    }
 }
 
 std::wstring ModelAdapter::getTypeStr()
@@ -1370,5 +1379,29 @@ std::wstring ModelAdapter::getShortTypeStr()
     return getSharedTypeStr();
 }
 
+DiagramAdapter* ModelAdapter::getDiagram() const
+{
+    if (diagramAdapter != nullptr)
+    {
+        diagramAdapter->IncreaseRef();
+    }
+    return diagramAdapter;
+}
+
+void ModelAdapter::setDiagram(DiagramAdapter* newDiagram)
+{
+    // The old 'diagramAdapter' needs to be freed after setting it to 'newDiagram'
+    types::InternalType* temp = diagramAdapter;
+
+    newDiagram->IncreaseRef();
+    diagramAdapter = newDiagram;
+
+    if (temp != nullptr)
+    {
+        temp->DecreaseRef();
+        temp->killMe();
+    }
+}
+
 } /* namespace view_scilab */
 } /* namespace org_scilab_modules_scicos */
index 25f4730..a7636e3 100644 (file)
 #define MODELADAPTER_HXX_
 
 #include <string>
+#include <memory>
 
 #include "BaseAdapter.hxx"
+#include "DiagramAdapter.hxx"
 #include "model/Block.hxx"
 
 namespace org_scilab_modules_scicos
@@ -37,6 +39,12 @@ public:
 
     std::wstring getTypeStr();
     std::wstring getShortTypeStr();
+
+    DiagramAdapter* getDiagram() const;
+    void setDiagram(DiagramAdapter* newDiagram);
+
+private:
+    DiagramAdapter* diagramAdapter;
 };
 
 } /* namespace view_scilab */
index 9e186f1..ab8faac 100644 (file)
@@ -13,6 +13,7 @@
 #include <string>
 #include <vector>
 #include <algorithm>
+#include <memory>
 
 #include "double.hxx"
 #include "string.hxx"
@@ -213,6 +214,12 @@ struct context
         std::vector<std::string> context;
         controller.getObjectProperty(adaptee, DIAGRAM, DIAGRAM_CONTEXT, context);
 
+        if (context.size() == 0)
+        {
+            // An empty context returns an empty matrix
+            return types::Double::Empty();
+        }
+
         types::String* o = new types::String((int)context.size(), 1);
         for (int i = 0; i < (int)context.size(); ++i)
         {
@@ -312,7 +319,8 @@ struct doc
 template<> property<ParamsAdapter>::props_t property<ParamsAdapter>::fields = property<ParamsAdapter>::props_t();
 
 ParamsAdapter::ParamsAdapter(std::shared_ptr<org_scilab_modules_scicos::model::Diagram> adaptee) :
-    BaseAdapter<ParamsAdapter, org_scilab_modules_scicos::model::Diagram>(adaptee)
+    BaseAdapter<ParamsAdapter, org_scilab_modules_scicos::model::Diagram>(adaptee),
+    doc_content(new types::List())
 {
     if (property<ParamsAdapter>::properties_have_not_been_set())
     {
@@ -328,18 +336,17 @@ ParamsAdapter::ParamsAdapter(std::shared_ptr<org_scilab_modules_scicos::model::D
         property<ParamsAdapter>::add_property(L"void3", &dummy_property::get, &dummy_property::set);
         property<ParamsAdapter>::add_property(L"doc", &doc::get, &doc::set);
     }
-
-    doc_content = new types::List();
 }
 
 ParamsAdapter::ParamsAdapter(const ParamsAdapter& adapter) :
-    BaseAdapter<ParamsAdapter, org_scilab_modules_scicos::model::Diagram>(adapter)
+    BaseAdapter<ParamsAdapter, org_scilab_modules_scicos::model::Diagram>(adapter),
+    doc_content(adapter.getDocContent())
 {
-    doc_content = adapter.doc_content->clone();
 }
 
 ParamsAdapter::~ParamsAdapter()
 {
+    doc_content->DecreaseRef();
     doc_content->killMe();
 }
 
@@ -354,13 +361,17 @@ std::wstring ParamsAdapter::getShortTypeStr()
 
 types::InternalType* ParamsAdapter::getDocContent() const
 {
-    return doc_content->clone();
+    doc_content->IncreaseRef();
+    return doc_content;
 }
 
 void ParamsAdapter::setDocContent(types::InternalType* v)
 {
+    doc_content->DecreaseRef();
     doc_content->killMe();
-    doc_content = v->clone();
+
+    v->IncreaseRef();
+    doc_content = v;
 }
 
 } /* namespace view_scilab */
index ea23def..1edaa0f 100644 (file)
@@ -14,6 +14,7 @@
 #define PARAMSADAPTER_HXX_
 
 #include <string>
+#include <memory>
 
 #include "BaseAdapter.hxx"
 
@@ -41,6 +42,7 @@ public:
 
     types::InternalType* getDocContent() const;
     void setDocContent(types::InternalType* v);
+
 private:
     types::InternalType* doc_content;
 };
index 17bf86c..8413048 100644 (file)
@@ -12,6 +12,7 @@
 
 #include <string>
 #include <vector>
+#include <memory>
 
 #include "double.hxx"
 #include "string.hxx"
index f1040cc..f0bf494 100644 (file)
@@ -73,10 +73,10 @@ types::InternalType* get_ports_property(const Adaptor& adaptor, const object_pro
                 return new types::Double(1);
             }
             datatypeIndex++;
-        // no break
+            // no break
         case DATATYPE_COLS:
             datatypeIndex++;
-        // no break
+            // no break
         case DATATYPE_ROWS:
         {
             datatypeIndex++;
@@ -102,6 +102,12 @@ types::InternalType* get_ports_property(const Adaptor& adaptor, const object_pro
         }
         case IMPLICIT:
         {
+            if (ids.size() == 0)
+            {
+                // When no port is present, return an empty matrix
+                return types::Double::Empty();
+            }
+
             types::String* o = new types::String((int)ids.size(), 1);
             for (std::vector<ScicosID>::iterator it = ids.begin(); it != ids.end(); ++it, ++i)
             {
@@ -256,10 +262,10 @@ bool set_ports_property(const Adaptor& adaptor, const object_properties_t port_k
 
             case DATATYPE_TYPE:
                 datatypeIndex++;
-            // no break
+                // no break
             case DATATYPE_COLS:
                 datatypeIndex++;
-            // no break
+                // no break
             case DATATYPE_ROWS:
             {
                 datatypeIndex++;
@@ -407,10 +413,10 @@ inline bool updateNewPort(const ScicosID oldPort, int newPort, Controller& contr
         {
             case DATATYPE_TYPE:
                 datatypeIndex++;
-            // no break
+                // no break
             case DATATYPE_COLS:
                 datatypeIndex++;
-            // no break
+                // no break
             case DATATYPE_ROWS:
             {
                 datatypeIndex++;
@@ -457,10 +463,10 @@ inline bool addNewPort(const ScicosID newPortID, int newPort, const std::vector<
         {
             case DATATYPE_TYPE:
                 datatypeIndex++;
-            // no break
+                // no break
             case DATATYPE_COLS:
                 datatypeIndex++;
-            // no break
+                // no break
             case DATATYPE_ROWS:
             {
                 datatypeIndex++;
index 92217de..4b58d83 100644 (file)
@@ -28,11 +28,6 @@ propertyUpdated( 1 , ANNOTATION , DESCRIPTION ) : NO_CHANGES
 propertyUpdated( 1 , ANNOTATION , FONT ) : NO_CHANGES
 propertyUpdated( 1 , ANNOTATION , FONT_SIZE ) : NO_CHANGES
 o  = 
-scicos_Text type :
-  graphics
-  model
-  void
-  gui
 o.graphics
  ans  =
 orig = [0,0]
@@ -63,13 +58,8 @@ propertyUpdated( 2 , ANNOTATION , GEOMETRY ) : SUCCESS
 propertyUpdated( 2 , ANNOTATION , DESCRIPTION ) : SUCCESS
 propertyUpdated( 2 , ANNOTATION , FONT ) : SUCCESS
 propertyUpdated( 2 , ANNOTATION , FONT_SIZE ) : SUCCESS
-objectDeleted( 1 )
+objectDeleted( 1 , ANNOTATION )
 o  = 
-scicos_Text type :
-  graphics
-  model
-  void
-  gui
 close;
 o.graphics
  ans  =
@@ -87,3 +77,6 @@ o.void
 o.gui
  ans  =
     []
+// Check that all the model items are freed
+clear
+objectDeleted( 2 , ANNOTATION )
index 6991315..b6675e1 100644 (file)
@@ -4,6 +4,7 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
+// <-- CLI SHELL MODE -->
 loadXcosLibs();
 // Allocate a summation block
 o = BIGSOM_f("define")
@@ -54,11 +55,6 @@ propertyUpdated( 1 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 1 , BLOCK , UID ) : NO_CHANGES
 propertyUpdated( 1 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
 o  = 
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
 o.graphics
  ans  =
 orig = [0,0]
@@ -109,7 +105,7 @@ o.gui
  BIGSOM_f
 o.doc
  ans  =
-()
+     ()
 // Set the block to itself without making any modification
 // (scicos_getvalue returns BIGSOM_f default parameters)
 p = funcprot();
@@ -214,13 +210,23 @@ propertyUpdated( 5 , BLOCK , LABEL ) : NO_CHANGES
 propertyUpdated( 5 , BLOCK , NZCROSS ) : NO_CHANGES
 propertyUpdated( 5 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 5 , BLOCK , UID ) : NO_CHANGES
-objectDeleted( 1 )
+propertyUpdated( 1 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 1 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 2 , PORT )
+propertyUpdated( 1 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 1 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 3 , PORT )
+propertyUpdated( 1 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 1 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 4 , PORT )
+objectDeleted( 1 , BLOCK )
 o  = 
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
 o.graphics
  ans  =
 orig = [0,0]
@@ -369,12 +375,23 @@ propertyUpdated( 9 , BLOCK , LABEL ) : NO_CHANGES
 propertyUpdated( 9 , BLOCK , NZCROSS ) : NO_CHANGES
 propertyUpdated( 9 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 9 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 5 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 5 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 5 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 5 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 6 , PORT )
+propertyUpdated( 5 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 5 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 5 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 5 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 7 , PORT )
+propertyUpdated( 5 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 5 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 5 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 5 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 8 , PORT )
+objectDeleted( 5 , BLOCK )
 o  = 
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
 o.graphics
  ans  =
 orig = [0,0]
@@ -527,12 +544,23 @@ propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
 propertyUpdated( 13 , BLOCK , NZCROSS ) : NO_CHANGES
 propertyUpdated( 13 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 13 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 9 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 9 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 9 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 9 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 10 , PORT )
+propertyUpdated( 9 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 9 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 9 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 9 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 11 , PORT )
+propertyUpdated( 9 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 9 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 9 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 9 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 12 , PORT )
+objectDeleted( 9 , BLOCK )
 o  = 
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
 o.graphics
  ans  =
 orig = [0,0]
@@ -617,12 +645,28 @@ propertyUpdated( 18 , BLOCK , NZCROSS ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , UID ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 13 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 14 , PORT )
+propertyUpdated( 13 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 15 , PORT )
+propertyUpdated( 13 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 17 , PORT )
+propertyUpdated( 13 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 16 , PORT )
+objectDeleted( 13 , BLOCK )
 o  = 
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
 o.graphics
  ans  =
 orig = [0,0]
@@ -637,7 +681,7 @@ peout = []
 gr_i = []
 id = ""
 in_implicit = "E"
-out_implicit = 
+out_implicit = []
 in_style = ""
 out_style = 
 in_label = ""
@@ -673,7 +717,7 @@ o.gui
  CSCOPE
 o.doc
  ans  =
-()
+     ()
 // Set the block to itself without making any modification
 // (scicos_getvalue returns CSCOPE_f default parameters)
 p = funcprot();
@@ -767,13 +811,18 @@ propertyUpdated( 21 , BLOCK , LABEL ) : NO_CHANGES
 propertyUpdated( 21 , BLOCK , NZCROSS ) : NO_CHANGES
 propertyUpdated( 21 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 21 , BLOCK , UID ) : NO_CHANGES
-objectDeleted( 18 )
+propertyUpdated( 18 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 19 , PORT )
+propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 20 , PORT )
+objectDeleted( 18 , BLOCK )
 o  = 
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
 // Test 'opar' and 'odstate'
 o = LOGIC("define")
 objectCreated( 24 , BLOCK )
@@ -833,15 +882,21 @@ propertyUpdated( 24 , BLOCK , NZCROSS ) : NO_CHANGES
 propertyUpdated( 24 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 24 , BLOCK , UID ) : NO_CHANGES
 propertyUpdated( 24 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 21 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 21 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 21 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 21 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 22 , PORT )
+propertyUpdated( 21 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 21 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 21 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 21 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 23 , PORT )
+objectDeleted( 21 , BLOCK )
 o  = 
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
 o.model.opar
  ans  =
-     (1)
+       ans(1)
   0
   0
   0
@@ -876,17 +931,17 @@ propertyUpdated( 24 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 24 , BLOCK , UID ) : NO_CHANGES
 o.model.opar
  ans  =
-     (1)
+       ans(1)
     1.    2.    3.
     4.    5.    6.
-     (2)
+       ans(2)
 !Hello  world!  !
 !               !
 !Test   123     !
-     (3)
+       ans(3)
     i      2.    3.i
     4.    5.i    6.
-     (4)
+       ans(4)
   32  32
   32  32
 o.model.odstate = list([1 2 3; 4 5 6], ["Hello" "world!"; "Test" "123"], [%i 2 3*%i; 4 5*%i 6], uint32([32 32; 32 32]));
@@ -916,16 +971,39 @@ propertyUpdated( 24 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 24 , BLOCK , UID ) : NO_CHANGES
 o.model.odstate
  ans  =
-     (1)
+       ans(1)
     1.    2.    3.
     4.    5.    6.
-     (2)
+       ans(2)
 !Hello  world!  !
 !               !
 !Test   123     !
-     (3)
+       ans(3)
     i      2.    3.i
     4.    5.i    6.
-     (4)
+       ans(4)
   32  32
   32  32
+// Check that all the model items are freed
+clear
+propertyUpdated( 24 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 24 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 24 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 24 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 25 , PORT )
+propertyUpdated( 24 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 24 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 24 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 24 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 26 , PORT )
+propertyUpdated( 24 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 24 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 24 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 24 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 27 , PORT )
+propertyUpdated( 24 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 24 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 24 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 24 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 28 , PORT )
+objectDeleted( 24 , BLOCK )
index 787cf0e..62de4e8 100644 (file)
@@ -5,6 +5,8 @@
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
 
+// <-- CLI SHELL MODE -->
+
 loadXcosLibs();
 
 // Allocate a summation block
@@ -94,3 +96,7 @@ o.model.opar
 
 o.model.odstate = list([1 2 3; 4 5 6], ["Hello" "world!"; "Test" "123"], [%i 2 3*%i; 4 5*%i 6], uint32([32 32; 32 32]));
 o.model.odstate
+
+
+// Check that all the model items are freed
+clear
index a34feb4..5d6d41d 100644 (file)
@@ -4,6 +4,7 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
+// <-- CLI SHELL MODE -->
 loadXcosLibs();
 // Allocate a diagram and access its fields
 scs_m = scicos_diagram()
@@ -16,18 +17,13 @@ propertyUpdated( 1 , DIAGRAM , CONTEXT ) : NO_CHANGES
 propertyUpdated( 1 , DIAGRAM , CHILDREN ) : NO_CHANGES
 propertyUpdated( 1 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
 scs_m  = 
-scicos_diagram type :
-  props
-  objs
-  version
-  contrib
 scs_m.props
  ans  =
 wpar = []
 title = ["Untitled";""]
 tol = [0.000001,0.000001,1.0000D-10,100001,0,1,0]
 tf = 100000
-context = 
+context = []
 void1 = []
 options = tlist("scsopt")
 void2 = []
@@ -35,404 +31,240 @@ void3 = []
 doc = list()
 scs_m.objs
  ans  =
-()
+     ()
 scs_m.version
  ans  =
  
 scs_m.contrib
  ans  =
-()
-// Create a diagram containing 2 summation blocks and two links
-Sum    = BIGSOM_f("define");
+     ()
+clear scs_m
+objectDeleted( 1 , DIAGRAM )
+// Create a dummy diagram with one undefined block then clear it
+scs_m = scicos_diagram(objs=list(scicos_block()));
 objectCreated( 2 , BLOCK )
 propertyUpdated( 2 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 2 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 2 , BLOCK , GEOMETRY ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , ANGLE ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 2 , BLOCK , EXPRS ) : SUCCESS
-objectCreated( 3 , PORT )
-propertyUpdated( 3 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 3 , PORT , PORT_KIND ) : SUCCESS
-objectCreated( 4 , PORT )
-propertyUpdated( 4 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 4 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 2 , BLOCK , INPUTS ) : SUCCESS
-objectCreated( 5 , PORT )
-propertyUpdated( 5 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 5 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 2 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 2 , BLOCK , EXPRS ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 3 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 4 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 5 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 3 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 4 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 5 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 3 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 4 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 5 , PORT , LABEL ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 2 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 2 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 4 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 3 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 5 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 2 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 2 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , STATE ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , DSTATE ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 2 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 2 , BLOCK , RPAR ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , IPAR ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , OPAR ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 2 , BLOCK , SIM_DEP_UT ) : SUCCESS
+propertyUpdated( 2 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , LABEL ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , NZCROSS ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 2 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 2 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Scope1 = CSCOPE("define");
-objectCreated( 6 , BLOCK )
-propertyUpdated( 6 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 6 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , EXPRS ) : SUCCESS
+propertyUpdated( 2 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
+objectCreated( 3 , DIAGRAM )
+propertyUpdated( 3 , DIAGRAM , TITLE ) : NO_CHANGES
+propertyUpdated( 3 , DIAGRAM , PATH ) : NO_CHANGES
+propertyUpdated( 3 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 3 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 3 , DIAGRAM , CONTEXT ) : NO_CHANGES
+propertyUpdated( 2 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 3 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 3 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
+clear scs_m
+propertyUpdated( 2 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+objectDeleted( 2 , BLOCK )
+objectDeleted( 3 , DIAGRAM )
+// Create a diagram containing 2 summation blocks and two links
+Sum    = BIGSOM_f("define");
+objectCreated( 4 , BLOCK )
+propertyUpdated( 4 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 4 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , EXPRS ) : SUCCESS
+objectCreated( 5 , PORT )
+propertyUpdated( 5 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 5 , PORT , PORT_KIND ) : SUCCESS
+objectCreated( 6 , PORT )
+propertyUpdated( 6 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 6 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 4 , BLOCK , INPUTS ) : SUCCESS
 objectCreated( 7 , PORT )
 propertyUpdated( 7 , PORT , SOURCE_BLOCK ) : SUCCESS
 propertyUpdated( 7 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 6 , BLOCK , INPUTS ) : SUCCESS
-objectCreated( 8 , PORT )
-propertyUpdated( 8 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 8 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 6 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 4 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 5 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 6 , PORT , IMPLICIT ) : NO_CHANGES
 propertyUpdated( 7 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 5 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 6 , PORT , STYLE ) : NO_CHANGES
 propertyUpdated( 7 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 5 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 6 , PORT , LABEL ) : NO_CHANGES
 propertyUpdated( 7 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 6 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 4 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 4 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 6 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 5 , PORT , DATATYPE ) : SUCCESS
 propertyUpdated( 7 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 7 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 8 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 6 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 6 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 6 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 6 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 6 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-Scope2 = CSCOPE("define");
-objectCreated( 9 , BLOCK )
-propertyUpdated( 9 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 9 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , EXPRS ) : SUCCESS
+propertyUpdated( 4 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 4 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , SIM_DEP_UT ) : SUCCESS
+propertyUpdated( 4 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Scope1 = CSCOPE("define");
+objectCreated( 8 , BLOCK )
+propertyUpdated( 8 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 8 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , EXPRS ) : SUCCESS
+objectCreated( 9 , PORT )
+propertyUpdated( 9 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 9 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 8 , BLOCK , INPUTS ) : SUCCESS
 objectCreated( 10 , PORT )
 propertyUpdated( 10 , PORT , SOURCE_BLOCK ) : SUCCESS
 propertyUpdated( 10 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 9 , BLOCK , INPUTS ) : SUCCESS
-objectCreated( 11 , PORT )
-propertyUpdated( 11 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 11 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 9 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 9 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 10 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 10 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 10 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 9 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 8 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 8 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 9 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 9 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 9 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 8 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 9 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 9 , PORT , DATATYPE ) : NO_CHANGES
 propertyUpdated( 10 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 10 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 11 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 9 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 9 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 9 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 9 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 9 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 8 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 8 , BLOCK , IPAR ) : SUCCESS
+propertyUpdated( 8 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , SIM_DEP_UT ) : SUCCESS
+propertyUpdated( 8 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+Scope2 = CSCOPE("define");
+objectCreated( 11 , BLOCK )
+propertyUpdated( 11 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 11 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , EXPRS ) : SUCCESS
+objectCreated( 12 , PORT )
+propertyUpdated( 12 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 12 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 11 , BLOCK , INPUTS ) : SUCCESS
+objectCreated( 13 , PORT )
+propertyUpdated( 13 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 13 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 11 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 12 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 12 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 12 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 11 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 12 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 12 , PORT , DATATYPE ) : NO_CHANGES
+propertyUpdated( 13 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 11 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 11 , BLOCK , IPAR ) : SUCCESS
+propertyUpdated( 11 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , SIM_DEP_UT ) : SUCCESS
+propertyUpdated( 11 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
 lnk1   = scicos_link();          // Data link
-objectCreated( 12 , LINK )
-propertyUpdated( 12 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 12 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 12 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 12 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 12 , LINK , COLOR ) : NO_CHANGES
-propertyUpdated( 12 , LINK , KIND ) : NO_CHANGES
+objectCreated( 14 , LINK )
+propertyUpdated( 14 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 14 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 14 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 14 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 14 , LINK , COLOR ) : NO_CHANGES
+propertyUpdated( 14 , LINK , KIND ) : NO_CHANGES
 lnk2   = scicos_link(ct=[1,-1]); // Activation link
-objectCreated( 13 , LINK )
-propertyUpdated( 13 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 13 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 13 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 13 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 13 , LINK , COLOR ) : NO_CHANGES
-propertyUpdated( 13 , LINK , KIND ) : SUCCESS
+objectCreated( 15 , LINK )
+propertyUpdated( 15 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 15 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 15 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 15 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 15 , LINK , COLOR ) : NO_CHANGES
+propertyUpdated( 15 , LINK , KIND ) : SUCCESS
 scs_m = scicos_diagram( objs=list(Sum,Scope1,Scope2,lnk1,lnk2) )
-objectCreated( 14 , BLOCK )
-propertyUpdated( 14 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 14 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 14 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 14 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 14 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 14 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 14 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-objectCreated( 15 , PORT )
-propertyUpdated( 15 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 15 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 15 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 15 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 15 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 15 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 15 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-objectCreated( 16 , PORT )
-propertyUpdated( 16 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 16 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 16 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 16 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 16 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 16 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 16 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 16 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , INPUTS ) : SUCCESS
-objectCreated( 17 , PORT )
-propertyUpdated( 17 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 17 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 17 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 17 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 17 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 17 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 17 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , OUTPUTS ) : SUCCESS
-propertyUpdated( 14 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , CHILDREN ) : NO_CHANGES
-objectCreated( 18 , BLOCK )
-propertyUpdated( 18 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 18 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 18 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 18 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 18 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 18 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 18 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-objectCreated( 19 , PORT )
-propertyUpdated( 19 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 19 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 19 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 19 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 19 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 19 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 19 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , INPUTS ) : SUCCESS
-propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
-objectCreated( 20 , PORT )
-propertyUpdated( 20 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 20 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 20 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 20 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 20 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 20 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 20 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , CHILDREN ) : NO_CHANGES
-objectCreated( 21 , BLOCK )
-propertyUpdated( 21 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 21 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 21 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 21 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 21 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 21 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 21 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-objectCreated( 22 , PORT )
-propertyUpdated( 22 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 22 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 22 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 22 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 22 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 22 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 22 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 22 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , INPUTS ) : SUCCESS
-propertyUpdated( 21 , BLOCK , OUTPUTS ) : NO_CHANGES
-objectCreated( 23 , PORT )
-propertyUpdated( 23 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 23 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 23 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 23 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 23 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 23 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 23 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 23 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 21 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , CHILDREN ) : NO_CHANGES
-objectCreated( 24 , LINK )
-propertyUpdated( 24 , LINK , COLOR ) : NO_CHANGES
-propertyUpdated( 24 , LINK , KIND ) : NO_CHANGES
-propertyUpdated( 24 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 24 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 24 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-objectCreated( 25 , LINK )
-propertyUpdated( 25 , LINK , COLOR ) : NO_CHANGES
-propertyUpdated( 25 , LINK , KIND ) : SUCCESS
-propertyUpdated( 25 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 25 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 25 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
-objectCreated( 26 , DIAGRAM )
-propertyUpdated( 26 , DIAGRAM , TITLE ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , PATH ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CONTEXT ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
-objectDeleted( 1 )
+objectCreated( 16 , DIAGRAM )
+propertyUpdated( 16 , DIAGRAM , TITLE ) : NO_CHANGES
+propertyUpdated( 16 , DIAGRAM , PATH ) : NO_CHANGES
+propertyUpdated( 16 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 16 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 16 , DIAGRAM , CONTEXT ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 16 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 16 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
 scs_m  = 
-scicos_diagram type :
-  props
-  objs
-  version
-  contrib
 scs_m.objs
  ans  =
-     (1)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
-     (2)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
-     (3)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
-     (4)
-scicos_Link type :
-  xx
-  yy
-  id
-  thick
-  ct
-  from
-  to
-     (5)
-scicos_Link type :
-  xx
-  yy
-  id
-  thick
-  ct
-  from
-  to
+       ans(1)
+       ans(2)
+       ans(3)
+       ans(4)
+       ans(5)
 // 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
-propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 16 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
 scs_m.objs(1).graphics.pout   // Check that block #1 is connected to lnk1
  ans  =
     4.
@@ -440,27 +272,27 @@ scs_m.objs(1).model.out       // "
  ans  =
   - 1.
 scs_m.objs(4).to = [2 1 1];   // Link block #2
-propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 16 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
 scs_m.objs(4).from
  ans  =
     1.    1.    0.
@@ -475,35 +307,35 @@ scs_m.objs(2).model.in        // "
   - 1.
 // Change the end of the link to input port #2 of block #2
 scs_m.objs(4).to = [2 2 1];
-propertyUpdated( 19 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-objectCreated( 27 , PORT )
-propertyUpdated( 27 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 27 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 27 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 27 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 18 , BLOCK , INPUTS ) : SUCCESS
-propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+objectCreated( 17 , PORT )
+propertyUpdated( 17 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 17 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 17 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+propertyUpdated( 17 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 8 , BLOCK , INPUTS ) : SUCCESS
 propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 16 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : NO_CHANGES
 propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
 scs_m.objs(4).from
  ans  =
     1.    1.    0.
@@ -520,25 +352,25 @@ scs_m.objs(2).model.in        // "
   - 1.
 // Disconnect the source
 scs_m.objs(4).from = [0 0 0];
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 16 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
 scs_m.objs(4).from
  ans  =
     0.    0.    0.
@@ -554,77 +386,77 @@ scs_m.objs(2).graphics.pin    // But block #2 is still connected to the link
     4.
 // Disconnect the destination
 scs_m.objs(4).to = [0 0 0];
-propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 16 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
 scs_m.objs(2).graphics.pin    // Check that block #2 is not connected
  ans  =
     0.
     0.
 // Now link the two Scope blocks together by adding an event output port to block #3 thanks to lnk2
 scs_m.objs(5).from = [2 1 1]; // Link the input of block #2
-propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 25 , LINK , SOURCE_PORT ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 10 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 15 , LINK , SOURCE_PORT ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 16 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 10 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 10 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 15 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
 scs_m.objs(5).to = [3 1 0];   // Add an event output to block #3 and link it to the previous
-objectCreated( 28 , PORT )
-propertyUpdated( 28 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 28 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 28 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 28 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 21 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : SUCCESS
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 20 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 25 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
+objectCreated( 18 , PORT )
+propertyUpdated( 18 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 18 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 18 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+propertyUpdated( 18 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 15 , LINK , DESTINATION_PORT ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 16 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 10 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 10 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 15 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
 scs_m.objs(5).from
  ans  =
     2.    1.    1.
@@ -645,175 +477,69 @@ scs_m.objs(3).model.evtout    // "
   - 1.
 // Verify that it is impossible to link two inputs or two outputs together
 scs_m.objs(5).from = [2 1 0]; // Two outputs
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 25 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 16 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 15 , LINK , DESTINATION_PORT ) : NO_CHANGES
 scs_m.objs(5).to = [3 1 1];   // Two inputs
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 18 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 21 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 25 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 26 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 24 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 24 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 16 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 14 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 14 , LINK , DESTINATION_PORT ) : NO_CHANGES
 //===================================================================================================
 // Test predefined link at diagram creation
 clear scs_m;
-objectDeleted( 26 )
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 11 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 14 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 15 , LINK , PARENT_DIAGRAM ) : SUCCESS
+objectDeleted( 16 , DIAGRAM )
 lnk   = scicos_link( from=[1 1 0],to=[2 1 1] );
-objectCreated( 29 , LINK )
-propertyUpdated( 29 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 29 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 29 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 29 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 29 , LINK , COLOR ) : NO_CHANGES
-propertyUpdated( 29 , LINK , KIND ) : NO_CHANGES
+objectCreated( 19 , LINK )
+propertyUpdated( 19 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 19 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 19 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 19 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 19 , LINK , COLOR ) : NO_CHANGES
+propertyUpdated( 19 , LINK , KIND ) : NO_CHANGES
 scs_m = scicos_diagram( objs=list(Sum,Scope1,lnk) );
-objectCreated( 30 , BLOCK )
-propertyUpdated( 30 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 30 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 30 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 30 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 30 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 30 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 30 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-objectCreated( 31 , PORT )
-propertyUpdated( 31 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 31 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 31 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 31 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 31 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 31 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 31 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-objectCreated( 32 , PORT )
-propertyUpdated( 32 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 32 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 32 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 32 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 32 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 32 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 32 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , INPUTS ) : SUCCESS
-objectCreated( 33 , PORT )
-propertyUpdated( 33 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 33 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 33 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 33 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 33 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 33 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 33 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 33 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , OUTPUTS ) : SUCCESS
-propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , CHILDREN ) : NO_CHANGES
-objectCreated( 34 , BLOCK )
-propertyUpdated( 34 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 34 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 34 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 34 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 34 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 34 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 34 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 34 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 34 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-objectCreated( 35 , PORT )
-propertyUpdated( 35 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 35 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 35 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 35 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 35 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 35 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 35 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , INPUTS ) : SUCCESS
-propertyUpdated( 34 , BLOCK , OUTPUTS ) : NO_CHANGES
-objectCreated( 36 , PORT )
-propertyUpdated( 36 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 36 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 36 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 36 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 36 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 36 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 36 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 34 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 34 , BLOCK , CHILDREN ) : NO_CHANGES
-objectCreated( 37 , LINK )
-propertyUpdated( 37 , LINK , COLOR ) : NO_CHANGES
-propertyUpdated( 37 , LINK , KIND ) : NO_CHANGES
-propertyUpdated( 37 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 37 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 37 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 37 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 37 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 37 , LINK , DESTINATION_PORT ) : NO_CHANGES
-objectCreated( 38 , DIAGRAM )
-propertyUpdated( 38 , DIAGRAM , TITLE ) : NO_CHANGES
-propertyUpdated( 38 , DIAGRAM , PATH ) : NO_CHANGES
-propertyUpdated( 38 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 38 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 38 , DIAGRAM , CONTEXT ) : NO_CHANGES
-propertyUpdated( 38 , DIAGRAM , CHILDREN ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 38 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 34 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 38 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 37 , LINK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 38 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 33 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 37 , LINK , SOURCE_PORT ) : SUCCESS
-propertyUpdated( 35 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 37 , LINK , DESTINATION_PORT ) : SUCCESS
-propertyUpdated( 38 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
+objectCreated( 20 , DIAGRAM )
+propertyUpdated( 20 , DIAGRAM , TITLE ) : NO_CHANGES
+propertyUpdated( 20 , DIAGRAM , PATH ) : NO_CHANGES
+propertyUpdated( 20 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 20 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 20 , DIAGRAM , CONTEXT ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 19 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 20 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 19 , LINK , SOURCE_PORT ) : SUCCESS
+propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 19 , LINK , DESTINATION_PORT ) : SUCCESS
+propertyUpdated( 20 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
 scs_m.objs(3).from
  ans  =
     1.    1.    0.
@@ -829,134 +555,40 @@ scs_m.objs(1).model.out       // "
 scs_m.objs(2).graphics.pin    // Check that block #2 is connected to lnk
  ans  =
     3.
+    0.
 scs_m.objs(2).model.in        // "
  ans  =
   - 1.
+  - 1.
 //===================================================================================================
 // Test predefined link insertion
 clear scs_m;
-objectDeleted( 38 )
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 19 , LINK , PARENT_DIAGRAM ) : SUCCESS
+objectDeleted( 20 , DIAGRAM )
 lnk   = scicos_link( from=[1 1 0],to=[2 1 1] );
-objectCreated( 39 , LINK )
-propertyUpdated( 39 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 39 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 39 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 39 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 39 , LINK , COLOR ) : NO_CHANGES
-propertyUpdated( 39 , LINK , KIND ) : NO_CHANGES
-objectDeleted( 29 )
+objectCreated( 21 , LINK )
+propertyUpdated( 21 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 21 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 21 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 21 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 21 , LINK , COLOR ) : NO_CHANGES
+propertyUpdated( 21 , LINK , KIND ) : NO_CHANGES
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+objectDeleted( 19 , LINK )
 scs_m = scicos_diagram( objs=list(Sum,Scope1) );
-objectCreated( 40 , BLOCK )
-propertyUpdated( 40 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 40 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 40 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 40 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 40 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 40 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 40 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 40 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-objectCreated( 41 , PORT )
-propertyUpdated( 41 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 41 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 41 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 41 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 41 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 41 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 41 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 41 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-objectCreated( 42 , PORT )
-propertyUpdated( 42 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 42 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 42 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 42 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 42 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 42 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 42 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 42 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , INPUTS ) : SUCCESS
-objectCreated( 43 , PORT )
-propertyUpdated( 43 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 43 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 43 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 43 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 43 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 43 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 43 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , OUTPUTS ) : SUCCESS
-propertyUpdated( 40 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , CHILDREN ) : NO_CHANGES
-objectCreated( 44 , BLOCK )
-propertyUpdated( 44 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 44 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 44 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 44 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 44 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 44 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 44 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 44 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 44 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-objectCreated( 45 , PORT )
-propertyUpdated( 45 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 45 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 45 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 45 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 45 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 45 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 45 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 45 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , INPUTS ) : SUCCESS
-propertyUpdated( 44 , BLOCK , OUTPUTS ) : NO_CHANGES
-objectCreated( 46 , PORT )
-propertyUpdated( 46 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 46 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 46 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 46 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 46 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 46 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 46 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 46 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 44 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 44 , BLOCK , CHILDREN ) : NO_CHANGES
-objectCreated( 47 , DIAGRAM )
-propertyUpdated( 47 , DIAGRAM , TITLE ) : NO_CHANGES
-propertyUpdated( 47 , DIAGRAM , PATH ) : NO_CHANGES
-propertyUpdated( 47 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 47 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 47 , DIAGRAM , CONTEXT ) : NO_CHANGES
-propertyUpdated( 47 , DIAGRAM , CHILDREN ) : NO_CHANGES
-propertyUpdated( 40 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 47 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 44 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 47 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 47 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
+objectCreated( 22 , DIAGRAM )
+propertyUpdated( 22 , DIAGRAM , TITLE ) : NO_CHANGES
+propertyUpdated( 22 , DIAGRAM , PATH ) : NO_CHANGES
+propertyUpdated( 22 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 22 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 22 , DIAGRAM , CONTEXT ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 22 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
 scs_m.objs(1).graphics.pout   // Check that block #1 is not connected
  ans  =
     0.
@@ -966,53 +598,36 @@ scs_m.objs(1).model.out       // "
 scs_m.objs(2).graphics.pin    // Check that block #2 is not connected
  ans  =
     0.
+    0.
 scs_m.objs(2).model.in        // "
  ans  =
   - 1.
+  - 1.
 scs_m.objs(3) = lnk;          // Add the predefined Link
-objectCreated( 48 , LINK )
-propertyUpdated( 48 , LINK , COLOR ) : NO_CHANGES
-propertyUpdated( 48 , LINK , KIND ) : NO_CHANGES
-propertyUpdated( 48 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 48 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 48 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 48 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 48 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 48 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 47 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 40 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 47 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 44 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 47 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 48 , LINK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 47 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 43 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 48 , LINK , SOURCE_PORT ) : SUCCESS
-propertyUpdated( 45 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 48 , LINK , DESTINATION_PORT ) : SUCCESS
+objectCreated( 23 , LINK )
+propertyUpdated( 23 , LINK , COLOR ) : NO_CHANGES
+propertyUpdated( 23 , LINK , KIND ) : NO_CHANGES
+propertyUpdated( 23 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 23 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 23 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 23 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+propertyUpdated( 23 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 23 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 23 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 23 , LINK , SOURCE_PORT ) : SUCCESS
+propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 23 , LINK , DESTINATION_PORT ) : SUCCESS
 scs_m.objs
  ans  =
-     (1)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
-     (2)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
-     (3)
-scicos_Link type :
-  xx
-  yy
-  id
-  thick
-  ct
-  from
-  to
+       ans(1)
+       ans(2)
+       ans(3)
 scs_m.objs(3).from
  ans  =
     1.    1.    0.
@@ -1028,44 +643,51 @@ scs_m.objs(1).model.out       // "
 scs_m.objs(2).graphics.pin    // Check that block #2 is connected to lnk
  ans  =
     3.
+    0.
 scs_m.objs(2).model.in        // "
  ans  =
   - 1.
+  - 1.
 //===================================================================================================
 // Test Links insertion before Block insertion
 clear scs_m;
-objectDeleted( 47 )
+propertyUpdated( 4 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 23 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 7 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 9 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+objectDeleted( 23 , LINK )
+objectDeleted( 22 , DIAGRAM )
 lnk   = scicos_link( from=[2 1 0],to=[3 1 1] );
-objectCreated( 49 , LINK )
-propertyUpdated( 49 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 49 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 49 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 49 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 49 , LINK , COLOR ) : NO_CHANGES
-propertyUpdated( 49 , LINK , KIND ) : NO_CHANGES
-objectDeleted( 39 )
+objectCreated( 24 , LINK )
+propertyUpdated( 24 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 24 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 24 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 24 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 24 , LINK , COLOR ) : NO_CHANGES
+propertyUpdated( 24 , LINK , KIND ) : NO_CHANGES
+objectDeleted( 21 , LINK )
 scs_m = scicos_diagram();
-objectCreated( 50 , DIAGRAM )
-propertyUpdated( 50 , DIAGRAM , TITLE ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , PATH ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , CONTEXT ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , CHILDREN ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
+objectCreated( 25 , DIAGRAM )
+propertyUpdated( 25 , DIAGRAM , TITLE ) : NO_CHANGES
+propertyUpdated( 25 , DIAGRAM , PATH ) : NO_CHANGES
+propertyUpdated( 25 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 25 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 25 , DIAGRAM , CONTEXT ) : NO_CHANGES
+propertyUpdated( 25 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 25 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
 scs_m.objs(1) = lnk;          // Add the predefined Link
-objectCreated( 51 , LINK )
-propertyUpdated( 51 , LINK , COLOR ) : NO_CHANGES
-propertyUpdated( 51 , LINK , KIND ) : NO_CHANGES
-propertyUpdated( 51 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 51 , LINK , CONTROL_POINTS ) : NO_CHANGES
-propertyUpdated( 51 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 51 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 51 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 51 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , CHILDREN ) : NO_CHANGES
-propertyUpdated( 51 , LINK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 50 , DIAGRAM , CHILDREN ) : SUCCESS
+objectCreated( 26 , LINK )
+propertyUpdated( 26 , LINK , COLOR ) : NO_CHANGES
+propertyUpdated( 26 , LINK , KIND ) : NO_CHANGES
+propertyUpdated( 26 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 26 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 26 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 26 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+propertyUpdated( 26 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 26 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 26 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , DIAGRAM , CHILDREN ) : SUCCESS
 scs_m.objs(1).from
  ans  =
     2.    1.    0.
@@ -1073,148 +695,200 @@ scs_m.objs(1).to
  ans  =
     3.    1.    1.
 scs_m.objs(2) = Sum;          // Add the Block that lnk's 'from' points to
-objectCreated( 52 , BLOCK )
-propertyUpdated( 52 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 52 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 52 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 52 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 52 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 52 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 52 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 52 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-objectCreated( 53 , PORT )
-propertyUpdated( 53 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 53 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 53 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 53 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 53 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 53 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 53 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 53 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-objectCreated( 54 , PORT )
-propertyUpdated( 54 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 54 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 54 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 54 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 54 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 54 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 54 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 54 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , INPUTS ) : SUCCESS
-objectCreated( 55 , PORT )
-propertyUpdated( 55 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 55 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 55 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 55 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 55 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 55 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 55 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 55 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , OUTPUTS ) : SUCCESS
-propertyUpdated( 52 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 52 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 51 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 52 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 50 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 55 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 51 , LINK , SOURCE_PORT ) : SUCCESS
+objectCreated( 27 , BLOCK )
+propertyUpdated( 27 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 27 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 27 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 27 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 27 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 27 , BLOCK , SIM_DEP_UT ) : SUCCESS
+propertyUpdated( 27 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , EXPRS ) : SUCCESS
+propertyUpdated( 27 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+objectCreated( 28 , PORT )
+propertyUpdated( 28 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 28 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 28 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 28 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 28 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 28 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 28 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 28 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+objectCreated( 29 , PORT )
+propertyUpdated( 29 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 29 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 29 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 29 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 29 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 29 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 29 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , INPUTS ) : SUCCESS
+objectCreated( 30 , PORT )
+propertyUpdated( 30 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 30 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 30 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 30 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 30 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 30 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 30 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 30 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 27 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , CHILDREN ) : NO_CHANGES
+propertyUpdated( 26 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 26 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 27 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 30 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 26 , LINK , SOURCE_PORT ) : SUCCESS
 scs_m.objs(3) = Scope1;       // Add the Block that lnk's 'to' points to
-objectCreated( 56 , BLOCK )
-propertyUpdated( 56 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 56 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 56 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 56 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 56 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 56 , BLOCK , SIM_DEP_UT ) : SUCCESS
-propertyUpdated( 56 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 56 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 56 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-objectCreated( 57 , PORT )
-propertyUpdated( 57 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 57 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 57 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 57 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 57 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 57 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 57 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 57 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , INPUTS ) : SUCCESS
-propertyUpdated( 56 , BLOCK , OUTPUTS ) : NO_CHANGES
-objectCreated( 58 , PORT )
-propertyUpdated( 58 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 58 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 58 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 58 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 58 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 58 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 58 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 58 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 56 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 56 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 51 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 52 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 50 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 56 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 50 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 55 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 55 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 51 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 57 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 51 , LINK , DESTINATION_PORT ) : SUCCESS
+objectCreated( 31 , BLOCK )
+propertyUpdated( 31 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 31 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 31 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 31 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 31 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 31 , BLOCK , SIM_DEP_UT ) : SUCCESS
+propertyUpdated( 31 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , IPAR ) : SUCCESS
+propertyUpdated( 31 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , EXPRS ) : SUCCESS
+propertyUpdated( 31 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+objectCreated( 32 , PORT )
+propertyUpdated( 32 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 32 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 32 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 32 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 32 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 32 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 32 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+objectCreated( 33 , PORT )
+propertyUpdated( 33 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 33 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 33 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 33 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 33 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 33 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 33 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 33 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 31 , BLOCK , OUTPUTS ) : NO_CHANGES
+objectCreated( 34 , PORT )
+propertyUpdated( 34 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 34 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 34 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 34 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 34 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 34 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 34 , PORT , SOURCE_BLOCK ) : SUCCESS
+objectCreated( 35 , LINK )
+propertyUpdated( 35 , LINK , COLOR ) : NO_CHANGES
+propertyUpdated( 35 , LINK , KIND ) : SUCCESS
+propertyUpdated( 35 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 35 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 35 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 35 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+propertyUpdated( 35 , LINK , SOURCE_PORT ) : SUCCESS
+objectCreated( 36 , PORT )
+propertyUpdated( 36 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 36 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 36 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 36 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 36 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 36 , PORT , DATATYPE ) : SUCCESS
+objectCreated( 37 , BLOCK )
+propertyUpdated( 37 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 37 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 37 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 37 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 37 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 37 , BLOCK , SIM_DEP_UT ) : SUCCESS
+propertyUpdated( 37 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , IPAR ) : SUCCESS
+propertyUpdated( 37 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , EXPRS ) : SUCCESS
+propertyUpdated( 37 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+objectCreated( 38 , PORT )
+propertyUpdated( 38 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 38 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 38 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 38 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 38 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 38 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 38 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 37 , BLOCK , OUTPUTS ) : NO_CHANGES
+objectCreated( 39 , PORT )
+propertyUpdated( 39 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 39 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 39 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 39 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 39 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 39 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 39 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 39 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 37 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+propertyUpdated( 37 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+propertyUpdated( 37 , BLOCK , CHILDREN ) : NO_CHANGES
+propertyUpdated( 36 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 35 , LINK , DESTINATION_PORT ) : SUCCESS
+propertyUpdated( 34 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 31 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 31 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , CHILDREN ) : NO_CHANGES
+propertyUpdated( 26 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 27 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 26 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 27 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 31 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 30 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 30 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 26 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 26 , LINK , DESTINATION_PORT ) : SUCCESS
 scs_m.objs
  ans  =
-     (1)
-scicos_Link type :
-  xx
-  yy
-  id
-  thick
-  ct
-  from
-  to
-     (2)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
-     (3)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
+       ans(1)
+       ans(2)
+       ans(3)
 // Check that the linking has been done
 // Sum (#2 in diagram) is linked to Scope1 (#3) through lnk (#1)
 scs_m.objs(1).from
@@ -1232,6 +906,103 @@ scs_m.objs(2).model.out
 scs_m.objs(3).graphics.pin
  ans  =
     1.
+    0.
 scs_m.objs(3).model.in
  ans  =
   - 1.
+  - 1.
+// Check that all the model items are freed
+clear
+propertyUpdated( 10 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 18 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+objectDeleted( 15 , LINK )
+objectDeleted( 14 , LINK )
+propertyUpdated( 11 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 11 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 12 , PORT )
+propertyUpdated( 11 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 13 , PORT )
+propertyUpdated( 11 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 11 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+objectDeleted( 18 , PORT )
+objectDeleted( 11 , BLOCK )
+propertyUpdated( 8 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 8 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 9 , PORT )
+propertyUpdated( 8 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 8 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 17 , PORT )
+propertyUpdated( 8 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 8 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 10 , PORT )
+objectDeleted( 8 , BLOCK )
+propertyUpdated( 4 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 4 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 5 , PORT )
+propertyUpdated( 4 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 4 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 6 , PORT )
+propertyUpdated( 4 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 4 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 7 , PORT )
+objectDeleted( 4 , BLOCK )
+propertyUpdated( 26 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 27 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 31 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 30 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+objectDeleted( 26 , LINK )
+propertyUpdated( 27 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 27 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 28 , PORT )
+propertyUpdated( 27 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 27 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 29 , PORT )
+propertyUpdated( 27 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 27 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 27 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 30 , PORT )
+objectDeleted( 27 , BLOCK )
+propertyUpdated( 31 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 31 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 32 , PORT )
+propertyUpdated( 31 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 31 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 33 , PORT )
+propertyUpdated( 31 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 31 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 31 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+propertyUpdated( 35 , LINK , SOURCE_PORT ) : SUCCESS
+objectDeleted( 34 , PORT )
+objectDeleted( 31 , BLOCK )
+objectDeleted( 25 , DIAGRAM )
+objectDeleted( 24 , LINK )
index 4df0eba..73ba04b 100644 (file)
@@ -5,6 +5,8 @@
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
 
+// <-- CLI SHELL MODE -->
+
 loadXcosLibs();
 
 // Allocate a diagram and access its fields
@@ -14,6 +16,12 @@ scs_m.objs
 scs_m.version
 scs_m.contrib
 
+clear scs_m
+
+// Create a dummy diagram with one undefined block then clear it
+scs_m = scicos_diagram(objs=list(scicos_block()));
+clear scs_m
+
 // Create a diagram containing 2 summation blocks and two links
 Sum    = BIGSOM_f("define");
 Scope1 = CSCOPE("define");
@@ -130,3 +138,7 @@ scs_m.objs(2).graphics.pout
 scs_m.objs(2).model.out
 scs_m.objs(3).graphics.pin
 scs_m.objs(3).model.in
+
+
+// Check that all the model items are freed
+clear
index e899800..2f790e7 100644 (file)
@@ -4,6 +4,7 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
+// <-- CLI SHELL MODE -->
 loadXcosLibs();
 // Allocate a Link and access its fields
 lnk = scicos_link()
@@ -15,14 +16,6 @@ propertyUpdated( 1 , LINK , THICK ) : NO_CHANGES
 propertyUpdated( 1 , LINK , COLOR ) : NO_CHANGES
 propertyUpdated( 1 , LINK , KIND ) : NO_CHANGES
 lnk  = 
-scicos_Link type :
-  xx
-  yy
-  id
-  thick
-  ct
-  from
-  to
 lnk.xx
  ans  =
     []
@@ -43,4 +36,7 @@ lnk.from
     0.    0.    0.
 lnk.to
  ans  =
-    0.    0.    0.
+    0.    0.    1.
+// Check that the Link is freed
+clear
+objectDeleted( 1 , LINK )
index e5caed7..c9dda39 100644 (file)
@@ -5,6 +5,8 @@
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
 
+// <-- CLI SHELL MODE -->
+
 loadXcosLibs();
 
 // Allocate a Link and access its fields
@@ -16,3 +18,7 @@ lnk.thick
 lnk.ct
 lnk.from
 lnk.to
+
+
+// Check that the Link is freed
+clear
index d6d165b..60ce7c9 100644 (file)
@@ -4,6 +4,7 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
+// <-- CLI SHELL MODE -->
 loadXcosLibs();
 // Allocate a SuperBlock and access its fields
 sb = SUPER_f("define")
@@ -162,7 +163,6 @@ propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 propertyUpdated( 6 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 propertyUpdated( 6 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 1 , DIAGRAM , CHILDREN ) : NO_CHANGES
 propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
 objectCreated( 8 , BLOCK )
@@ -201,9 +201,8 @@ propertyUpdated( 8 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
 propertyUpdated( 8 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
 propertyUpdated( 8 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 propertyUpdated( 8 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 6 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 propertyUpdated( 8 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
 propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
 objectCreated( 10 , BLOCK )
@@ -235,90 +234,11 @@ propertyUpdated( 12 , PORT , DATATYPE ) : SUCCESS
 propertyUpdated( 10 , BLOCK , STATE ) : NO_CHANGES
 propertyUpdated( 10 , BLOCK , DSTATE ) : NO_CHANGES
 propertyUpdated( 10 , BLOCK , ODSTATE ) : NO_CHANGES
-objectCreated( 13 , DIAGRAM )
-propertyUpdated( 13 , DIAGRAM , TITLE ) : SUCCESS
-propertyUpdated( 13 , DIAGRAM , PATH ) : NO_CHANGES
-propertyUpdated( 13 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
-propertyUpdated( 13 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 13 , DIAGRAM , CONTEXT ) : NO_CHANGES
-objectCreated( 14 , BLOCK )
-propertyUpdated( 14 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 14 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 14 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 14 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 14 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 14 , BLOCK , INPUTS ) : NO_CHANGES
-objectCreated( 15 , PORT )
-propertyUpdated( 15 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 15 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 15 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 15 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 15 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 15 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 15 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 15 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , OUTPUTS ) : SUCCESS
-propertyUpdated( 14 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 14 , BLOCK , CHILDREN ) : NO_CHANGES
-objectCreated( 16 , BLOCK )
-propertyUpdated( 16 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 16 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 16 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 16 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 16 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-objectCreated( 17 , PORT )
-propertyUpdated( 17 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 17 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 17 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 17 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 17 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 17 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 17 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 17 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , INPUTS ) : SUCCESS
-propertyUpdated( 16 , BLOCK , OUTPUTS ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 16 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 13 , DIAGRAM , CHILDREN ) : SUCCESS
 propertyUpdated( 10 , BLOCK , CHILDREN ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PORT_REFERENCE ) : SUCCESS
-propertyUpdated( 14 , BLOCK , PARENT_BLOCK ) : SUCCESS
-propertyUpdated( 16 , BLOCK , PORT_REFERENCE ) : SUCCESS
-propertyUpdated( 16 , BLOCK , PARENT_BLOCK ) : SUCCESS
+propertyUpdated( 6 , BLOCK , PORT_REFERENCE ) : SUCCESS
+propertyUpdated( 6 , BLOCK , PARENT_BLOCK ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PORT_REFERENCE ) : SUCCESS
+propertyUpdated( 8 , BLOCK , PARENT_BLOCK ) : SUCCESS
 propertyUpdated( 10 , BLOCK , IPAR ) : NO_CHANGES
 propertyUpdated( 10 , BLOCK , OPAR ) : NO_CHANGES
 propertyUpdated( 10 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
@@ -328,15 +248,19 @@ propertyUpdated( 10 , BLOCK , NZCROSS ) : NO_CHANGES
 propertyUpdated( 10 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 10 , BLOCK , UID ) : NO_CHANGES
 propertyUpdated( 10 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-objectDeleted( 1 )
-objectDeleted( 4 )
-objectDeleted( 2 )
+propertyUpdated( 4 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 4 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 4 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 5 , PORT )
+objectDeleted( 4 , BLOCK )
+propertyUpdated( 2 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 2 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 2 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 2 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 3 , PORT )
+objectDeleted( 2 , BLOCK )
 sb  = 
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
 sb.graphics
  ans  =
 orig = [0,0]
@@ -371,7 +295,7 @@ evtout = []
 state = []
 dstate = []
 odstate = list()
-rpar = mlist(["diagram","props","objs","version","contrib"],tlist(["params","wpar","title","tol","tf","context","void1","options","void2","void3","doc"],[],["Super Block";""],[0.000001,0.000001,1.0000D-10,100001,0,1,0],100000,..,[],tlist("scsopt"),[],[],list()),list(mlist(["Block","graphics","model","gui","doc"],mlist(["graphics","orig","sz","flip","theta","exprs","pin","pout","pein","peout","gr_i","id","in_implicit","out_implicit","in_style","out_style","in_label","out_label","style"],[40,40],[20,20],%t,0,"1",[],0,[],[],[],"",..,"E",..,"",..,"",""),mlist(["model","sim","in","in2","intyp","out","out2","outtyp","evtin","evtout","state","dstate","odstate","rpar","ipar","opar","blocktype","firing","dep_ut","label","nzcross","nmode","equations","uid"],"input",[],[],1,-1,-2,-1,[],[],[],[],list(),[],1,list(),"c",[],[%f,%f],"",0,0,list(),""),"IN_f",list()),mlist(["Block","graphics","model","gui","doc"],mlist(["graphics","orig","sz","flip","theta","exprs","pin","pout","pein","peout","gr_i","id","in_implicit","out_implicit","in_style","out_style","in_label","out_label","style"],[240,40],[20,20],%t,0,"1",0,[],[],[],[],"","E",..,"",..,"",..,""),mlist(["model","sim","in","in2","intyp","out","out2","outtyp","evtin","evtout","state","dstate","odstate","rpar","ipar","opar","blocktype","firing","dep_ut","label","nzcross","nmode","equations","uid"],"output",-1,-2,-1,[],[],1,[],[],[],[],list(),[],1,list(),"c",[],[%f,%f],"",0,0,list(),""),"OUT_f",list())),"",list())
+rpar = mlist(["diagram","props","objs","version","contrib"],tlist(["params","wpar","title","tol","tf","context","void1","options","void2","void3","doc"],[],["Super Block";""],[0.000001,0.000001,1.0000D-10,100001,0,1,0],100000,[],[],tlist("scsopt"),[],[],list()),list(mlist(["Block","graphics","model","gui","doc"],mlist(["graphics","orig","sz","flip","theta","exprs","pin","pout","pein","peout","gr_i","id","in_implicit","out_implicit","in_style","out_style","in_label","out_label","style"],[40,40],[20,20],%t,0,"1",[],0,[],[],[],"",[],"E",..,"",..,"",""),mlist(["model","sim","in","in2","intyp","out","out2","outtyp","evtin","evtout","state","dstate","odstate","rpar","ipar","opar","blocktype","firing","dep_ut","label","nzcross","nmode","equations","uid"],"input",[],[],1,-1,-2,-1,[],[],[],[],list(),[],1,list(),"c",[],[%f,%f],"",0,0,list(),""),"IN_f",list()),mlist(["Block","graphics","model","gui","doc"],mlist(["graphics","orig","sz","flip","theta","exprs","pin","pout","pein","peout","gr_i","id","in_implicit","out_implicit","in_style","out_style","in_label","out_label","style"],[240,40],[20,20],%t,0,"1",0,[],[],[],[],"","E",[],"",..,"",..,""),mlist(["model","sim","in","in2","intyp","out","out2","outtyp","evtin","evtout","state","dstate","odstate","rpar","ipar","opar","blocktype","firing","dep_ut","label","nzcross","nmode","equations","uid"],"output",-1,-2,-1,[],[],1,[],[],[],[],list(),[],1,list(),"c",[],[%f,%f],"",0,0,list(),""),"OUT_f",list())),"",list())
 ipar = []
 opar = list()
 blocktype = "h"
@@ -387,22 +311,17 @@ sb.gui
  SUPER_f
 sb.doc
  ans  =
-()
+     ()
 // Access the contained diagram's fields
 sb.model.rpar
  ans  =
-scicos_diagram type :
-  props
-  objs
-  version
-  contrib
 sb.model.rpar.props
  ans  =
 wpar = []
 title = ["Super Block";""]
 tol = [0.000001,0.000001,1.0000D-10,100001,0,1,0]
 tf = 100000
-context = 
+context = []
 void1 = []
 options = tlist("scsopt")
 void2 = []
@@ -410,18 +329,8 @@ void3 = []
 doc = list()
 sb.model.rpar.objs
  ans  =
-     (1)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
-     (2)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
+       ans(1)
+       ans(2)
 sb.model.rpar.objs(1).graphics
  ans  =
 orig = [40,40]
@@ -435,7 +344,7 @@ pein = []
 peout = []
 gr_i = []
 id = ""
-in_implicit = 
+in_implicit = []
 out_implicit = "E"
 in_style = 
 out_style = ""
@@ -481,7 +390,7 @@ peout = []
 gr_i = []
 id = ""
 in_implicit = "E"
-out_implicit = 
+out_implicit = []
 in_style = ""
 out_style = 
 in_label = ""
@@ -517,14 +426,202 @@ sb.model.rpar.version
  
 sb.model.rpar.contrib
  ans  =
-()
+     ()
 clk = CLOCK_c("define")
+objectCreated( 13 , BLOCK )
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EXPRS ) : SUCCESS
+objectCreated( 14 , PORT )
+propertyUpdated( 14 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 14 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : SUCCESS
+objectCreated( 15 , PORT )
+propertyUpdated( 15 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 15 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 13 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 14 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 15 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 13 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 13 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+propertyUpdated( 15 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EXPRS ) : SUCCESS
+propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 14 , PORT , DATATYPE ) : NO_CHANGES
+propertyUpdated( 15 , PORT , DATATYPE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 13 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 15 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 14 , PORT , DATATYPE ) : NO_CHANGES
+propertyUpdated( 15 , PORT , DATATYPE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 15 , PORT , FIRING ) : SUCCESS
+propertyUpdated( 13 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , UID ) : NO_CHANGES
+objectCreated( 16 , BLOCK )
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , EXPRS ) : SUCCESS
+objectCreated( 17 , PORT )
+propertyUpdated( 17 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 17 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 16 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 16 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 16 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 17 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 16 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , IPAR ) : SUCCESS
+propertyUpdated( 16 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+propertyUpdated( 16 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 17 , PORT , DATATYPE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , UID ) : NO_CHANGES
 objectCreated( 18 , BLOCK )
 propertyUpdated( 18 , BLOCK , GEOMETRY ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , GEOMETRY ) : SUCCESS
 propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , EXPRS ) : SUCCESS
+propertyUpdated( 18 , BLOCK , EXPRS ) : NO_CHANGES
 objectCreated( 19 , PORT )
 propertyUpdated( 19 , PORT , SOURCE_BLOCK ) : SUCCESS
 propertyUpdated( 19 , PORT , PORT_KIND ) : SUCCESS
@@ -532,55 +629,32 @@ propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : SUCCESS
 objectCreated( 20 , PORT )
 propertyUpdated( 20 , PORT , SOURCE_BLOCK ) : SUCCESS
 propertyUpdated( 20 , PORT , PORT_KIND ) : SUCCESS
+objectCreated( 21 , PORT )
+propertyUpdated( 21 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 21 , PORT , PORT_KIND ) : SUCCESS
 propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
 propertyUpdated( 18 , BLOCK , LABEL ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , STYLE ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 18 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 18 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
 propertyUpdated( 19 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 21 , PORT , DATATYPE ) : SUCCESS
 propertyUpdated( 20 , PORT , DATATYPE ) : SUCCESS
 propertyUpdated( 18 , BLOCK , STATE ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , DSTATE ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 18 , BLOCK , RPAR ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , IPAR ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , OPAR ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-propertyUpdated( 20 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 20 , PORT , FIRING ) : FAIL
+propertyUpdated( 21 , PORT , FIRING ) : FAIL
 propertyUpdated( 18 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , LABEL ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , NZCROSS ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , UID ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 18 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 18 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 18 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , STYLE ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , GEOMETRY ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , GEOMETRY ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
@@ -595,220 +669,128 @@ propertyUpdated( 18 , BLOCK , ANGLE ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , EXPRS ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , LABEL ) : NO_CHANGES
 propertyUpdated( 18 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 19 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 20 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 18 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 20 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 19 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 20 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 20 , PORT , FIRING ) : SUCCESS
-propertyUpdated( 18 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 18 , BLOCK , UID ) : NO_CHANGES
-objectCreated( 21 , BLOCK )
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , EXPRS ) : SUCCESS
-objectCreated( 22 , PORT )
-propertyUpdated( 22 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 22 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 21 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 21 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 21 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 22 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 21 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 21 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-propertyUpdated( 21 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 22 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 21 , BLOCK , UID ) : NO_CHANGES
+objectCreated( 22 , DIAGRAM )
+propertyUpdated( 22 , DIAGRAM , TITLE ) : NO_CHANGES
+propertyUpdated( 22 , DIAGRAM , PATH ) : NO_CHANGES
+propertyUpdated( 22 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 22 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 22 , DIAGRAM , CONTEXT ) : NO_CHANGES
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : NO_CHANGES
+propertyUpdated( 22 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
 objectCreated( 23 , BLOCK )
-propertyUpdated( 23 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 23 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 23 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+propertyUpdated( 23 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , LABEL ) : NO_CHANGES
 propertyUpdated( 23 , BLOCK , GEOMETRY ) : SUCCESS
 propertyUpdated( 23 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , IPAR ) : SUCCESS
+propertyUpdated( 23 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , EXPRS ) : SUCCESS
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , OUTPUTS ) : NO_CHANGES
 objectCreated( 24 , PORT )
-propertyUpdated( 24 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 24 , PORT , FIRING ) : NO_CHANGES
 propertyUpdated( 24 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 24 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 24 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 24 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 24 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 24 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 24 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 propertyUpdated( 23 , BLOCK , EVENT_INPUTS ) : SUCCESS
-objectCreated( 25 , PORT )
-propertyUpdated( 25 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 25 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 23 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , CHILDREN ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+objectCreated( 25 , BLOCK )
+propertyUpdated( 25 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 25 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 25 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 25 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+propertyUpdated( 25 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 25 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 25 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , EXPRS ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , OUTPUTS ) : NO_CHANGES
 objectCreated( 26 , PORT )
-propertyUpdated( 26 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 26 , PORT , FIRING ) : NO_CHANGES
 propertyUpdated( 26 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 23 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-propertyUpdated( 23 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 23 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 24 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 26 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 26 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 26 , PORT , LABEL ) : NO_CHANGES
 propertyUpdated( 26 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 25 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 23 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-propertyUpdated( 25 , PORT , FIRING ) : FAIL
-propertyUpdated( 26 , PORT , FIRING ) : FAIL
-propertyUpdated( 23 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 23 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 23 , BLOCK , STYLE ) : NO_CHANGES
-objectCreated( 27 , DIAGRAM )
-propertyUpdated( 27 , DIAGRAM , TITLE ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , PATH ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CONTEXT ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
-objectCreated( 28 , BLOCK )
-propertyUpdated( 28 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 28 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 28 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-propertyUpdated( 28 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 28 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 28 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 28 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , INPUTS ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , OUTPUTS ) : NO_CHANGES
-objectCreated( 29 , PORT )
-propertyUpdated( 29 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 29 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 29 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 29 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 29 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 29 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 29 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 28 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : NO_CHANGES
-propertyUpdated( 28 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 26 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 26 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , EVENT_INPUTS ) : SUCCESS
+objectCreated( 27 , PORT )
+propertyUpdated( 27 , PORT , FIRING ) : SUCCESS
+propertyUpdated( 27 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 27 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 27 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 27 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 27 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 27 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , CHILDREN ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+objectCreated( 28 , LINK )
+propertyUpdated( 28 , LINK , CONTROL_POINTS ) : SUCCESS
+propertyUpdated( 28 , LINK , CONTROL_POINTS ) : SUCCESS
+propertyUpdated( 28 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 28 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 28 , LINK , COLOR ) : SUCCESS
+propertyUpdated( 28 , LINK , KIND ) : SUCCESS
+objectCreated( 29 , LINK )
+propertyUpdated( 29 , LINK , COLOR ) : SUCCESS
+propertyUpdated( 29 , LINK , KIND ) : SUCCESS
+propertyUpdated( 29 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 29 , LINK , CONTROL_POINTS ) : SUCCESS
+propertyUpdated( 29 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+propertyUpdated( 29 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 29 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 29 , LINK , SOURCE_PORT ) : SUCCESS
+objectDeleted( 28 , LINK )
 objectCreated( 30 , BLOCK )
-propertyUpdated( 30 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
+propertyUpdated( 30 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , NZCROSS ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , NMODE ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
@@ -821,12 +803,12 @@ propertyUpdated( 30 , BLOCK , GEOMETRY ) : SUCCESS
 propertyUpdated( 30 , BLOCK , ANGLE ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , STATE ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , RPAR ) : SUCCESS
+propertyUpdated( 30 , BLOCK , RPAR ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , ODSTATE ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , IPAR ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 30 , BLOCK , EXPRS ) : SUCCESS
+propertyUpdated( 30 , BLOCK , EXPRS ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , INPUTS ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
@@ -841,7 +823,7 @@ propertyUpdated( 31 , PORT , SOURCE_BLOCK ) : SUCCESS
 propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : SUCCESS
 objectCreated( 32 , PORT )
-propertyUpdated( 32 , PORT , FIRING ) : SUCCESS
+propertyUpdated( 32 , PORT , FIRING ) : NO_CHANGES
 propertyUpdated( 32 , PORT , PORT_KIND ) : SUCCESS
 propertyUpdated( 32 , PORT , IMPLICIT ) : NO_CHANGES
 propertyUpdated( 32 , PORT , STYLE ) : NO_CHANGES
@@ -849,519 +831,296 @@ propertyUpdated( 32 , PORT , LABEL ) : NO_CHANGES
 propertyUpdated( 32 , PORT , DATATYPE ) : SUCCESS
 propertyUpdated( 32 , PORT , SOURCE_BLOCK ) : SUCCESS
 propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
+objectCreated( 33 , PORT )
+propertyUpdated( 33 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 33 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 33 , PORT , IMPLICIT ) : NO_CHANGES
+propertyUpdated( 33 , PORT , STYLE ) : NO_CHANGES
+propertyUpdated( 33 , PORT , LABEL ) : NO_CHANGES
+propertyUpdated( 33 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 33 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 33 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
 propertyUpdated( 30 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
 propertyUpdated( 30 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 28 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : SUCCESS
 propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-objectCreated( 33 , LINK )
-propertyUpdated( 33 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 33 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 33 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 33 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 33 , LINK , COLOR ) : SUCCESS
-propertyUpdated( 33 , LINK , KIND ) : SUCCESS
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 29 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 29 , LINK , DESTINATION_PORT ) : SUCCESS
 objectCreated( 34 , LINK )
-propertyUpdated( 34 , LINK , COLOR ) : SUCCESS
-propertyUpdated( 34 , LINK , KIND ) : SUCCESS
-propertyUpdated( 34 , LINK , LABEL ) : NO_CHANGES
 propertyUpdated( 34 , LINK , CONTROL_POINTS ) : SUCCESS
+propertyUpdated( 34 , LINK , CONTROL_POINTS ) : SUCCESS
+propertyUpdated( 34 , LINK , LABEL ) : NO_CHANGES
 propertyUpdated( 34 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 34 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 34 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 34 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 28 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 34 , LINK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 34 , LINK , SOURCE_PORT ) : SUCCESS
-objectDeleted( 33 )
-objectCreated( 35 , BLOCK )
-propertyUpdated( 35 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 35 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 35 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-propertyUpdated( 35 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 35 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , INPUTS ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , OUTPUTS ) : NO_CHANGES
-objectCreated( 36 , PORT )
-propertyUpdated( 36 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 36 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 36 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 36 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 36 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 36 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 36 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , EVENT_INPUTS ) : SUCCESS
-objectCreated( 37 , PORT )
-propertyUpdated( 37 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 37 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 37 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 37 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 37 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 37 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 37 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-objectCreated( 38 , PORT )
-propertyUpdated( 38 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 38 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 38 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 38 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 38 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 38 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 38 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 38 , PORT , CONNECTED_SIGNALS ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-propertyUpdated( 35 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 35 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 28 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 34 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 35 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 34 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 34 , LINK , DESTINATION_PORT ) : SUCCESS
-objectCreated( 39 , LINK )
-propertyUpdated( 39 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 39 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 39 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 39 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 39 , LINK , COLOR ) : SUCCESS
-propertyUpdated( 39 , LINK , KIND ) : SUCCESS
-objectCreated( 40 , LINK )
-propertyUpdated( 40 , LINK , COLOR ) : SUCCESS
-propertyUpdated( 40 , LINK , KIND ) : SUCCESS
-propertyUpdated( 40 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 40 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 40 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 40 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 40 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 40 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 28 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 34 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 35 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 40 , LINK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 34 , LINK , COLOR ) : SUCCESS
+propertyUpdated( 34 , LINK , KIND ) : SUCCESS
+objectCreated( 35 , LINK )
+propertyUpdated( 35 , LINK , COLOR ) : SUCCESS
+propertyUpdated( 35 , LINK , KIND ) : SUCCESS
+propertyUpdated( 35 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 35 , LINK , CONTROL_POINTS ) : SUCCESS
+propertyUpdated( 35 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 35 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+propertyUpdated( 35 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 35 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 35 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 29 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 29 , LINK , DESTINATION_PORT ) : NO_CHANGES
 propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 34 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 34 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 40 , LINK , SOURCE_PORT ) : SUCCESS
-propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 40 , LINK , DESTINATION_PORT ) : SUCCESS
-objectDeleted( 39 )
-objectCreated( 41 , LINK )
-propertyUpdated( 41 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 41 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 41 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 41 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 41 , LINK , COLOR ) : SUCCESS
-propertyUpdated( 41 , LINK , KIND ) : SUCCESS
-objectCreated( 42 , LINK )
-propertyUpdated( 42 , LINK , COLOR ) : SUCCESS
-propertyUpdated( 42 , LINK , KIND ) : SUCCESS
-propertyUpdated( 42 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 42 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 42 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 42 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 42 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 42 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 28 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 34 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 35 , BLOCK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 40 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 42 , LINK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 27 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 35 , LINK , SOURCE_PORT ) : SUCCESS
+propertyUpdated( 24 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 35 , LINK , DESTINATION_PORT ) : SUCCESS
+objectDeleted( 34 , LINK )
+objectCreated( 36 , LINK )
+propertyUpdated( 36 , LINK , CONTROL_POINTS ) : SUCCESS
+propertyUpdated( 36 , LINK , CONTROL_POINTS ) : SUCCESS
+propertyUpdated( 36 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 36 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 36 , LINK , COLOR ) : SUCCESS
+propertyUpdated( 36 , LINK , KIND ) : SUCCESS
+objectCreated( 37 , LINK )
+propertyUpdated( 37 , LINK , COLOR ) : SUCCESS
+propertyUpdated( 37 , LINK , KIND ) : SUCCESS
+propertyUpdated( 37 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 37 , LINK , CONTROL_POINTS ) : SUCCESS
+propertyUpdated( 37 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 37 , LINK , PARENT_DIAGRAM ) : NO_CHANGES
+propertyUpdated( 37 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 37 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 35 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 23 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 29 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 30 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 35 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 37 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 27 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 29 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 29 , LINK , DESTINATION_PORT ) : NO_CHANGES
 propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
 propertyUpdated( 32 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 34 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 36 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 34 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 37 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 40 , LINK , SOURCE_PORT ) : NO_CHANGES
-propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 29 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 40 , LINK , DESTINATION_PORT ) : NO_CHANGES
-propertyUpdated( 38 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 42 , LINK , SOURCE_PORT ) : SUCCESS
-propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 42 , LINK , DESTINATION_PORT ) : SUCCESS
-objectDeleted( 41 )
-objectCreated( 43 , BLOCK )
-propertyUpdated( 43 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 43 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 43 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , GEOMETRY ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , EXPRS ) : NO_CHANGES
-objectCreated( 44 , PORT )
-propertyUpdated( 44 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 44 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 43 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 44 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 43 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 44 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 44 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 43 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 44 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 44 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-propertyUpdated( 44 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 44 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 44 , PORT , FIRING ) : FAIL
-propertyUpdated( 43 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 44 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 44 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 44 , PORT , DATATYPE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , ODSTATE ) : NO_CHANGES
-objectCreated( 45 , DIAGRAM )
-propertyUpdated( 45 , DIAGRAM , TITLE ) : NO_CHANGES
-propertyUpdated( 45 , DIAGRAM , PATH ) : NO_CHANGES
-propertyUpdated( 45 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
-propertyUpdated( 45 , DIAGRAM , PROPERTIES ) : NO_CHANGES
-propertyUpdated( 45 , DIAGRAM , CONTEXT ) : NO_CHANGES
-objectCreated( 46 , BLOCK )
-propertyUpdated( 46 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 46 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 46 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-propertyUpdated( 46 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 46 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , IPAR ) : SUCCESS
-propertyUpdated( 46 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 46 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 46 , BLOCK , INPUTS ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , OUTPUTS ) : NO_CHANGES
-objectCreated( 47 , PORT )
-propertyUpdated( 47 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 47 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 47 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 47 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 47 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 47 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 47 , PORT , SOURCE_BLOCK ) : SUCCESS
-objectCreated( 48 , LINK )
-propertyUpdated( 48 , LINK , COLOR ) : SUCCESS
-propertyUpdated( 48 , LINK , KIND ) : SUCCESS
-propertyUpdated( 48 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 48 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 48 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 48 , LINK , PARENT_DIAGRAM ) : SUCCESS
-objectCreated( 49 , PORT )
-propertyUpdated( 49 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 49 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 49 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 49 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 49 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 49 , PORT , DATATYPE ) : SUCCESS
-objectCreated( 50 , BLOCK )
-propertyUpdated( 50 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 50 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 50 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-propertyUpdated( 50 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 50 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , RPAR ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , EXPRS ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 50 , BLOCK , INPUTS ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , OUTPUTS ) : NO_CHANGES
-objectCreated( 51 , PORT )
-propertyUpdated( 51 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 51 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 51 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 51 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 51 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 51 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 51 , PORT , SOURCE_BLOCK ) : SUCCESS
-objectCreated( 52 , LINK )
-propertyUpdated( 52 , LINK , COLOR ) : SUCCESS
-propertyUpdated( 52 , LINK , KIND ) : SUCCESS
-propertyUpdated( 52 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 52 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 52 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 52 , LINK , PARENT_DIAGRAM ) : SUCCESS
-objectCreated( 53 , PORT )
-propertyUpdated( 53 , PORT , FIRING ) : SUCCESS
-propertyUpdated( 53 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 53 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 53 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 53 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 53 , PORT , DATATYPE ) : SUCCESS
-objectCreated( 54 , BLOCK )
-propertyUpdated( 54 , BLOCK , SIM_FUNCTION_API ) : SUCCESS
-propertyUpdated( 54 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
-propertyUpdated( 54 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
-propertyUpdated( 54 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
-propertyUpdated( 54 , BLOCK , UID ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , STYLE ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , GEOMETRY ) : SUCCESS
-propertyUpdated( 54 , BLOCK , ANGLE ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , STATE ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , DSTATE ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , RPAR ) : SUCCESS
-propertyUpdated( 54 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , ODSTATE ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , EXPRS ) : SUCCESS
-propertyUpdated( 54 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
-propertyUpdated( 54 , BLOCK , INPUTS ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , OUTPUTS ) : NO_CHANGES
-objectCreated( 55 , PORT )
-propertyUpdated( 55 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 55 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 55 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 55 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 55 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 55 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 55 , PORT , SOURCE_BLOCK ) : SUCCESS
-objectCreated( 56 , LINK )
-propertyUpdated( 56 , LINK , COLOR ) : SUCCESS
-propertyUpdated( 56 , LINK , KIND ) : SUCCESS
-propertyUpdated( 56 , LINK , LABEL ) : NO_CHANGES
-propertyUpdated( 56 , LINK , CONTROL_POINTS ) : SUCCESS
-propertyUpdated( 56 , LINK , THICK ) : NO_CHANGES
-propertyUpdated( 56 , LINK , PARENT_DIAGRAM ) : SUCCESS
-objectCreated( 57 , PORT )
-propertyUpdated( 57 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 57 , PORT , PORT_KIND ) : SUCCESS
-propertyUpdated( 57 , PORT , IMPLICIT ) : NO_CHANGES
-propertyUpdated( 57 , PORT , STYLE ) : NO_CHANGES
-propertyUpdated( 57 , PORT , LABEL ) : NO_CHANGES
-propertyUpdated( 57 , PORT , DATATYPE ) : SUCCESS
-propertyUpdated( 57 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 57 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 56 , LINK , SOURCE_PORT ) : SUCCESS
-propertyUpdated( 56 , LINK , DESTINATION_PORT ) : SUCCESS
-propertyUpdated( 55 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 54 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 54 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-propertyUpdated( 54 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 54 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 53 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 53 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 52 , LINK , SOURCE_PORT ) : SUCCESS
-propertyUpdated( 52 , LINK , DESTINATION_PORT ) : SUCCESS
-propertyUpdated( 51 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 50 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 50 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
-propertyUpdated( 50 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 50 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 49 , PORT , SOURCE_BLOCK ) : SUCCESS
-propertyUpdated( 49 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 48 , LINK , SOURCE_PORT ) : SUCCESS
-propertyUpdated( 48 , LINK , DESTINATION_PORT ) : SUCCESS
-propertyUpdated( 47 , PORT , CONNECTED_SIGNALS ) : SUCCESS
-propertyUpdated( 46 , BLOCK , EVENT_INPUTS ) : SUCCESS
-propertyUpdated( 46 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , PARENT_BLOCK ) : NO_CHANGES
-propertyUpdated( 46 , BLOCK , CHILDREN ) : NO_CHANGES
-propertyUpdated( 45 , DIAGRAM , CHILDREN ) : SUCCESS
-propertyUpdated( 43 , BLOCK , CHILDREN ) : SUCCESS
-propertyUpdated( 46 , BLOCK , PORT_REFERENCE ) : SUCCESS
-propertyUpdated( 46 , BLOCK , PARENT_BLOCK ) : SUCCESS
-propertyUpdated( 54 , BLOCK , PARENT_BLOCK ) : SUCCESS
-propertyUpdated( 50 , BLOCK , PARENT_BLOCK ) : SUCCESS
-propertyUpdated( 43 , BLOCK , IPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , OPAR ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
-propertyUpdated( 44 , PORT , FIRING ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , LABEL ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NZCROSS ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , NMODE ) : NO_CHANGES
-propertyUpdated( 43 , BLOCK , UID ) : NO_CHANGES
-objectDeleted( 18 )
-objectDeleted( 21 )
-objectDeleted( 23 )
+propertyUpdated( 35 , LINK , SOURCE_PORT ) : NO_CHANGES
+propertyUpdated( 24 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 24 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 35 , LINK , DESTINATION_PORT ) : NO_CHANGES
+propertyUpdated( 33 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 37 , LINK , SOURCE_PORT ) : SUCCESS
+propertyUpdated( 26 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+propertyUpdated( 37 , LINK , DESTINATION_PORT ) : SUCCESS
+objectDeleted( 36 , LINK )
+objectCreated( 38 , BLOCK )
+propertyUpdated( 38 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , INTERFACE_FUNCTION ) : SUCCESS
+propertyUpdated( 38 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , GEOMETRY ) : SUCCESS
+propertyUpdated( 38 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , EXPRS ) : NO_CHANGES
+objectCreated( 39 , PORT )
+propertyUpdated( 39 , PORT , SOURCE_BLOCK ) : SUCCESS
+propertyUpdated( 39 , PORT , PORT_KIND ) : SUCCESS
+propertyUpdated( 38 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_NAME ) : SUCCESS
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 39 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 38 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 39 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 39 , PORT , DATATYPE ) : SUCCESS
+propertyUpdated( 38 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 39 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 39 , PORT , DATATYPE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_BLOCKTYPE ) : SUCCESS
+propertyUpdated( 39 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 39 , PORT , DATATYPE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 39 , PORT , FIRING ) : FAIL
+propertyUpdated( 38 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 39 , PORT , DATATYPE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 39 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 39 , PORT , DATATYPE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , CHILDREN ) : SUCCESS
+propertyUpdated( 23 , BLOCK , PORT_REFERENCE ) : SUCCESS
+propertyUpdated( 23 , BLOCK , PARENT_BLOCK ) : SUCCESS
+propertyUpdated( 25 , BLOCK , PARENT_BLOCK ) : SUCCESS
+propertyUpdated( 30 , BLOCK , PARENT_BLOCK ) : SUCCESS
+propertyUpdated( 38 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 39 , PORT , FIRING ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 14 , PORT )
+propertyUpdated( 13 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 13 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+objectDeleted( 15 , PORT )
+objectDeleted( 13 , BLOCK )
+propertyUpdated( 16 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 16 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 16 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 17 , PORT )
+objectDeleted( 16 , BLOCK )
+propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 19 , PORT )
+propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+objectDeleted( 20 , PORT )
+propertyUpdated( 18 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 18 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+objectDeleted( 21 , PORT )
+objectDeleted( 18 , BLOCK )
 clk  = 
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
 clk.graphics
  ans  =
 orig = [0,0]
@@ -1375,8 +1134,8 @@ pein = []
 peout = 0
 gr_i = []
 id = ""
-in_implicit = 
-out_implicit = 
+in_implicit = []
+out_implicit = []
 in_style = 
 out_style = 
 in_label = 
@@ -1396,7 +1155,7 @@ evtout = 1
 state = []
 dstate = []
 odstate = list()
-rpar = mlist(["diagram","props","objs","version","contrib"],tlist(["params","wpar","title","tol","tf","context","void1","options","void2","void3","doc"],[],["Untitled";""],[0.000001,0.000001,1.0000D-10,100001,0,1,0],100000,..,[],tlist("scsopt"),[],[],list()),list(mlist(["Block","graphics","model","gui","doc"],mlist(["graphics","orig","sz","flip","theta","exprs","pin","pout","pein","peout","gr_i","id","in_implicit","out_implicit","in_style","out_style","in_label","out_label","style"],[399,162],[20,20],%t,0,"1",[],[],5,[],[],"",..,..,..,..,..,..,""),mlist(["model","sim","in","in2","intyp","out","out2","outtyp","evtin","evtout","state","dstate","odstate","rpar","ipar","opar","blocktype","firing","dep_ut","label","nzcross","nmode","equations","uid"],"output",[],[],1,[],[],1,1,[],[],[],list(),[],1,list(),"d",[],[%f,%f],"",0,0,list(),""),"CLKOUT_f",list()),mlist(["Block","graphics","model","gui","doc"],mlist(["graphics","orig","sz","flip","theta","exprs","pin","pout","pein","peout","gr_i","id","in_implicit","out_implicit","in_style","out_style","in_label","out_label","style"],[320,232],[40,40],%t,0,["0.1";"0.1"],[],[],6,3,[],"",..,..,..,..,..,..,""),mlist(["model","sim","in","in2","intyp","out","out2","outtyp","evtin","evtout","state","dstate","odstate","rpar","ipar","opar","blocktype","firing","dep_ut","label","nzcross","nmode","equations","uid"],list("evtdly4",4),[],[],1,[],[],1,1,1,[],[],list(),[0.1;0.1],[],list(),"d",0.1,[%f,%f],"",0,0,list(),""),"EVTDLY_c",list()),mlist(["Link","xx","yy","id","thick","ct","from","to"],[340;340;380.71],[226.29;172;172],"",[0,0],[5,-1],[2,1,0],[4,1,1]),mlist(["Block","graphics","model","gui","doc"],mlist(["graphics","orig","sz","flip","theta","exprs","pin","pout","pein","peout","gr_i","id","in_implicit","out_implicit","in_style","out_style","in_label","out_label","style"],[0,0],[0.33333333,0.33333333],%t,0,..,[],[],3,[5;6],[],"",..,..,..,..,..,..,""),mlist(["model","sim","in","in2","intyp","out","out2","outtyp","evtin","evtout","state","dstate","odstate","rpar","ipar","opar","blocktype","firing","dep_ut","label","nzcross","nmode","equations","uid"],"split",[],[],1,[],[],1,1,[1;1],[],[],list(),[],[],list(),"d",[0;0],[%f,%f],"",0,0,list(),""),"CLKSPLIT_f",list()),mlist(["Link","xx","yy","id","thick","ct","from","to"],[380.71;399],[172;172],"",[0,0],[5,-1],[4,1,0],[1,1,1]),mlist(["Link","xx","yy","id","thick","ct","from","to"],[380.71;380.71;340;340],[172;302;302;277.71],"",[0,0],[5,-1],[4,2,0],[2,1,1])),"",list())
+rpar = mlist(["diagram","props","objs","version","contrib"],tlist(["params","wpar","title","tol","tf","context","void1","options","void2","void3","doc"],[],["Untitled";""],[0.000001,0.000001,1.0000D-10,100001,0,1,0],100000,[],[],tlist("scsopt"),[],[],list()),list(mlist(["Block","graphics","model","gui","doc"],mlist(["graphics","orig","sz","flip","theta","exprs","pin","pout","pein","peout","gr_i","id","in_implicit","out_implicit","in_style","out_style","in_label","out_label","style"],[399,162],[20,20],%t,0,"1",[],[],5,[],[],"",[],[],..,..,..,..,""),mlist(["model","sim","in","in2","intyp","out","out2","outtyp","evtin","evtout","state","dstate","odstate","rpar","ipar","opar","blocktype","firing","dep_ut","label","nzcross","nmode","equations","uid"],"output",[],[],1,[],[],1,1,[],[],[],list(),[],1,list(),"d",[],[%f,%f],"",0,0,list(),""),"CLKOUT_f",list()),mlist(["Block","graphics","model","gui","doc"],mlist(["graphics","orig","sz","flip","theta","exprs","pin","pout","pein","peout","gr_i","id","in_implicit","out_implicit","in_style","out_style","in_label","out_label","style"],[320,232],[40,40],%t,0,["0.1";"0.1"],[],[],6,3,[],"",[],[],..,..,..,..,""),mlist(["model","sim","in","in2","intyp","out","out2","outtyp","evtin","evtout","state","dstate","odstate","rpar","ipar","opar","blocktype","firing","dep_ut","label","nzcross","nmode","equations","uid"],list("evtdly4",4),[],[],1,[],[],1,1,1,[],[],list(),[0.1;0.1],[],list(),"d",0.1,[%f,%f],"",0,0,list(),""),"EVTDLY_c",list()),mlist(["Link","xx","yy","id","thick","ct","from","to"],[340;340;380.71],[226.29;172;172],"",[0,0],[5,-1],[2,1,0],[4,1,1]),mlist(["Block","graphics","model","gui","doc"],mlist(["graphics","orig","sz","flip","theta","exprs","pin","pout","pein","peout","gr_i","id","in_implicit","out_implicit","in_style","out_style","in_label","out_label","style"],[0,0],[0.33333333,0.33333333],%t,0,..,[],[],3,[5;6],[],"",[],[],..,..,..,..,""),mlist(["model","sim","in","in2","intyp","out","out2","outtyp","evtin","evtout","state","dstate","odstate","rpar","ipar","opar","blocktype","firing","dep_ut","label","nzcross","nmode","equations","uid"],"split",[],[],1,[],[],1,1,[1;1],[],[],list(),[],[],list(),"d",[0;0],[%f,%f],"",0,0,list(),""),"CLKSPLIT_f",list()),mlist(["Link","xx","yy","id","thick","ct","from","to"],[380.71;399],[172;172],"",[0,0],[5,-1],[4,1,0],[1,1,1]),mlist(["Link","xx","yy","id","thick","ct","from","to"],[380.71;380.71;340;340],[172;302;302;277.71],"",[0,0],[5,-1],[4,2,0],[2,1,1])),"",list())
 ipar = []
 opar = list()
 blocktype = "h"
@@ -1409,18 +1168,13 @@ equations = list()
 uid = ""
 clk.model.rpar
  ans  =
-scicos_diagram type :
-  props
-  objs
-  version
-  contrib
 clk.model.rpar.props
  ans  =
 wpar = []
 title = ["Untitled";""]
 tol = [0.000001,0.000001,1.0000D-10,100001,0,1,0]
 tf = 100000
-context = 
+context = []
 void1 = []
 options = tlist("scsopt")
 void2 = []
@@ -1428,51 +1182,12 @@ void3 = []
 doc = list()
 clk.model.rpar.objs
  ans  =
-     (1)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
-     (2)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
-     (3)
-scicos_Link type :
-  xx
-  yy
-  id
-  thick
-  ct
-  from
-  to
-     (4)
-scicos_Block type :
-  graphics
-  model
-  gui
-  doc
-     (5)
-scicos_Link type :
-  xx
-  yy
-  id
-  thick
-  ct
-  from
-  to
-     (6)
-scicos_Link type :
-  xx
-  yy
-  id
-  thick
-  ct
-  from
-  to
+       ans(1)
+       ans(2)
+       ans(3)
+       ans(4)
+       ans(5)
+       ans(6)
 clk.model.rpar.objs(1).graphics
  ans  =
 orig = [399,162]
@@ -1486,8 +1201,8 @@ pein = 5
 peout = []
 gr_i = []
 id = ""
-in_implicit = 
-out_implicit = 
+in_implicit = []
+out_implicit = []
 in_style = 
 out_style = 
 in_label = 
@@ -1531,8 +1246,8 @@ pein = 6
 peout = 3
 gr_i = []
 id = ""
-in_implicit = 
-out_implicit = 
+in_implicit = []
+out_implicit = []
 in_style = 
 out_style = 
 in_label = 
@@ -1582,8 +1297,8 @@ pein = 3
 peout = [5;6]
 gr_i = []
 id = ""
-in_implicit = 
-out_implicit = 
+in_implicit = []
+out_implicit = []
 in_style = 
 out_style = 
 in_label = 
@@ -1626,3 +1341,91 @@ clk.model.rpar.objs(6).from
 clk.model.rpar.objs(6).to
  ans  =
     2.    1.    1.
+// Check that all the model items are freed
+clear
+propertyUpdated( 38 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 38 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+objectDeleted( 39 , PORT )
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 23 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 23 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 23 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+propertyUpdated( 35 , LINK , DESTINATION_PORT ) : SUCCESS
+objectDeleted( 24 , PORT )
+propertyUpdated( 38 , BLOCK , CHILDREN ) : SUCCESS
+objectDeleted( 23 , BLOCK )
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 25 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 25 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+propertyUpdated( 37 , LINK , DESTINATION_PORT ) : SUCCESS
+objectDeleted( 26 , PORT )
+propertyUpdated( 25 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 25 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+propertyUpdated( 29 , LINK , SOURCE_PORT ) : SUCCESS
+objectDeleted( 27 , PORT )
+propertyUpdated( 38 , BLOCK , CHILDREN ) : SUCCESS
+objectDeleted( 25 , BLOCK )
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 31 , PORT , CONNECTED_SIGNALS ) : SUCCESS
+objectDeleted( 29 , LINK )
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 30 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : SUCCESS
+propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 31 , PORT )
+propertyUpdated( 30 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+propertyUpdated( 35 , LINK , SOURCE_PORT ) : SUCCESS
+objectDeleted( 32 , PORT )
+propertyUpdated( 30 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 30 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 30 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 30 , BLOCK , EVENT_OUTPUTS ) : SUCCESS
+propertyUpdated( 37 , LINK , SOURCE_PORT ) : SUCCESS
+objectDeleted( 33 , PORT )
+propertyUpdated( 38 , BLOCK , CHILDREN ) : SUCCESS
+objectDeleted( 30 , BLOCK )
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+objectDeleted( 35 , LINK )
+propertyUpdated( 22 , DIAGRAM , CHILDREN ) : SUCCESS
+objectDeleted( 37 , LINK )
+objectDeleted( 22 , DIAGRAM )
+objectDeleted( 38 , BLOCK )
+propertyUpdated( 10 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 10 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 10 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 10 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 11 , PORT )
+propertyUpdated( 10 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 10 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 10 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 10 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 12 , PORT )
+propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 6 , BLOCK , INPUTS ) : NO_CHANGES
+propertyUpdated( 6 , BLOCK , OUTPUTS ) : SUCCESS
+propertyUpdated( 6 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 6 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 7 , PORT )
+propertyUpdated( 10 , BLOCK , CHILDREN ) : SUCCESS
+objectDeleted( 6 , BLOCK )
+propertyUpdated( 1 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 8 , BLOCK , INPUTS ) : SUCCESS
+propertyUpdated( 8 , BLOCK , OUTPUTS ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , EVENT_INPUTS ) : NO_CHANGES
+propertyUpdated( 8 , BLOCK , EVENT_OUTPUTS ) : NO_CHANGES
+objectDeleted( 9 , PORT )
+propertyUpdated( 10 , BLOCK , CHILDREN ) : SUCCESS
+objectDeleted( 8 , BLOCK )
+objectDeleted( 1 , DIAGRAM )
+objectDeleted( 10 , BLOCK )
index 62d029d..3fd7a0a 100644 (file)
@@ -5,6 +5,8 @@
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
 
+// <-- CLI SHELL MODE -->
+
 loadXcosLibs();
 
 // Allocate a SuperBlock and access its fields
@@ -46,3 +48,7 @@ clk.model.rpar.objs(5).from
 clk.model.rpar.objs(5).to
 clk.model.rpar.objs(6).from
 clk.model.rpar.objs(6).to
+
+
+// Check that all the model items are freed
+clear
diff --git a/scilab/modules/scicos/tests/unit_tests/model/link_preservation.dia.ref b/scilab/modules/scicos/tests/unit_tests/model/link_preservation.dia.ref
new file mode 100644 (file)
index 0000000..0319b56
--- /dev/null
@@ -0,0 +1,73 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+loadXcosLibs();
+b = scicos_block();
+objectCreated( 1 , BLOCK )
+propertyUpdated( 1 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
+d = scicos_diagram( objs=list(scicos_link(from=[3 3 0],to=[5 2 1]) ));
+objectCreated( 2 , LINK )
+propertyUpdated( 2 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 2 , LINK , CONTROL_POINTS ) : NO_CHANGES
+propertyUpdated( 2 , LINK , LABEL ) : NO_CHANGES
+propertyUpdated( 2 , LINK , THICK ) : NO_CHANGES
+propertyUpdated( 2 , LINK , COLOR ) : NO_CHANGES
+propertyUpdated( 2 , LINK , KIND ) : NO_CHANGES
+objectCreated( 3 , DIAGRAM )
+propertyUpdated( 3 , DIAGRAM , TITLE ) : NO_CHANGES
+propertyUpdated( 3 , DIAGRAM , PATH ) : NO_CHANGES
+propertyUpdated( 3 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 3 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 3 , DIAGRAM , CONTEXT ) : NO_CHANGES
+propertyUpdated( 2 , LINK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 3 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 3 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
+b.model.rpar = d;
+propertyUpdated( 1 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , CHILDREN ) : SUCCESS
+propertyUpdated( 1 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , UID ) : NO_CHANGES
+// b is now a SuperBlock containing a diagram containing a link, with its 'from' and and 'to' properties set
+assert_checkequal(b.model.rpar.objs(1).from, [3 3 0]);
+assert_checkequal(b.model.rpar.objs(1).to, [5 2 1]);
+// Check that all the model items are freed
+clear
+propertyUpdated( 3 , DIAGRAM , CHILDREN ) : SUCCESS
+objectDeleted( 2 , LINK )
+objectDeleted( 3 , DIAGRAM )
+objectDeleted( 1 , BLOCK )
diff --git a/scilab/modules/scicos/tests/unit_tests/model/link_preservation.tst b/scilab/modules/scicos/tests/unit_tests/model/link_preservation.tst
new file mode 100644 (file)
index 0000000..9f2ba83
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+loadXcosLibs();
+
+b = scicos_block();
+d = scicos_diagram( objs=list(scicos_link(from=[3 3 0],to=[5 2 1]) ));
+b.model.rpar = d;
+// b is now a SuperBlock containing a diagram containing a link, with its 'from' and and 'to' properties set
+
+assert_checkequal(b.model.rpar.objs(1).from, [3 3 0]);
+assert_checkequal(b.model.rpar.objs(1).to, [5 2 1]);
+
+
+// Check that all the model items are freed
+clear
diff --git a/scilab/modules/scicos/tests/unit_tests/model/simple_delete.dia.ref b/scilab/modules/scicos/tests/unit_tests/model/simple_delete.dia.ref
new file mode 100644 (file)
index 0000000..61a9f74
--- /dev/null
@@ -0,0 +1,86 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+loadXcosLibs();
+// Test #1: the temporary block is deleted with the diagram
+scs_m = scicos_diagram( objs=list(scicos_block()) );
+objectCreated( 1 , BLOCK )
+propertyUpdated( 1 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
+objectCreated( 2 , DIAGRAM )
+propertyUpdated( 2 , DIAGRAM , TITLE ) : NO_CHANGES
+propertyUpdated( 2 , DIAGRAM , PATH ) : NO_CHANGES
+propertyUpdated( 2 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 2 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 2 , DIAGRAM , CONTEXT ) : NO_CHANGES
+propertyUpdated( 1 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 2 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 2 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
+clear scs_m
+propertyUpdated( 1 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+objectDeleted( 1 , BLOCK )
+objectDeleted( 2 , DIAGRAM )
+// Test #2: the block is deleted after the diagram
+blk = scicos_block();
+objectCreated( 3 , BLOCK )
+propertyUpdated( 3 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , GEOMETRY ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , ANGLE ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , EXPRS ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , STYLE ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , SIM_FUNCTION_NAME ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , SIM_FUNCTION_API ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , STATE ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , DSTATE ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , ODSTATE ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , RPAR ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , IPAR ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , OPAR ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , SIM_BLOCKTYPE ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , SIM_DEP_UT ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , LABEL ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , NZCROSS ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , NMODE ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , UID ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , INTERFACE_FUNCTION ) : NO_CHANGES
+scs_m = scicos_diagram( objs=list(blk) );
+objectCreated( 4 , DIAGRAM )
+propertyUpdated( 4 , DIAGRAM , TITLE ) : NO_CHANGES
+propertyUpdated( 4 , DIAGRAM , PATH ) : NO_CHANGES
+propertyUpdated( 4 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 4 , DIAGRAM , PROPERTIES ) : NO_CHANGES
+propertyUpdated( 4 , DIAGRAM , CONTEXT ) : NO_CHANGES
+propertyUpdated( 3 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+propertyUpdated( 4 , DIAGRAM , CHILDREN ) : SUCCESS
+propertyUpdated( 4 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
+clear scs_m
+propertyUpdated( 3 , BLOCK , PARENT_DIAGRAM ) : SUCCESS
+objectDeleted( 4 , DIAGRAM )
+clear blk
+objectDeleted( 3 , BLOCK )
diff --git a/scilab/modules/scicos/tests/unit_tests/model/simple_delete.tst b/scilab/modules/scicos/tests/unit_tests/model/simple_delete.tst
new file mode 100644 (file)
index 0000000..4a4d61f
--- /dev/null
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+loadXcosLibs();
+
+// Test #1: the temporary block is deleted with the diagram
+scs_m = scicos_diagram( objs=list(scicos_block()) );
+clear scs_m
+
+// Test #2: the block is deleted after the diagram
+blk = scicos_block();
+scs_m = scicos_diagram( objs=list(blk) );
+clear scs_m
+clear blk