Xcos MVC: fix valgrind detected invalid access
[scilab.git] / scilab / modules / scicos / src / cpp / model / Block.hxx
index 4762b8c..d069897 100644 (file)
@@ -29,6 +29,9 @@ struct Parameter
     std::vector<double> rpar;
     std::vector<int> ipar;
     std::vector<int> opar;
+
+    // opar default value is an empty list
+    Parameter() : rpar(), ipar(), opar(1, 0) {}
 };
 
 struct State
@@ -36,6 +39,9 @@ struct State
     std::vector<double> state;
     std::vector<double> dstate;
     std::vector<int> odstate;
+
+    // odstate default value is an empty list
+    State() : state(), dstate(), odstate(1, 0) {}
 };
 
 /**
@@ -71,6 +77,8 @@ struct Descriptor
 
     char dep_ut;            //!< dep_ut_t masked value
     char blocktype;         //!< one of blocktype_t value
+
+    Descriptor() : functionName(), functionApi(0), dep_ut(0), blocktype(BLOCKTYPE_C) {}
 };
 
 /*
@@ -102,12 +110,7 @@ class Block: public BaseObject
 public:
     Block() : BaseObject(BLOCK), m_parentDiagram(0), m_interfaceFunction(), m_geometry(), m_angle(),
         m_exprs(std::vector<std::string> (1, "String")), m_label(), m_style(), m_nzcross(std::vector<int> (1, 0)), m_nmode(std::vector<int> (1, 0)), m_equations(), m_uid(), m_sim(), m_in(), m_out(), m_ein(), m_eout(),
-        m_parameter(), m_state(), m_parentBlock(0), m_children(), m_portReference(0)
-    {
-        m_sim.blocktype  = BLOCKTYPE_C;
-        m_parameter.opar = std::vector<int> (1, 0);
-        m_state.odstate  = std::vector<int> (1, 0);
-    };
+        m_parameter(), m_state(), m_parentBlock(0), m_children(), m_portReference(0) {};
     Block(const Block& o) : BaseObject(BLOCK), m_parentDiagram(o.m_parentDiagram), m_interfaceFunction(o.m_interfaceFunction), m_geometry(o.m_geometry),
         m_angle(o.m_angle), m_exprs(o.m_exprs), m_label(o.m_label), m_style(o.m_style), m_nzcross(o.m_nzcross), m_nmode(o.m_nmode), m_equations(o.m_equations), m_uid(o.m_uid),
         m_sim(o.m_sim), m_in(o.m_in), m_out(o.m_out), m_ein(o.m_ein), m_eout(o.m_eout), m_parameter(o.m_parameter), m_state(o.m_state), m_parentBlock(o.m_parentBlock),