Salome HOME
mergefrom branch BR_V511_PR tag mergeto_trunk_03feb09
[modules/yacs.git] / src / yacsloader / procParsers.hxx
index d27e17d109a395a33a97aeef6fa4a6c2c620db02..111ab948fe8669b999c8bfc55c60718114452891 100644 (file)
@@ -1,3 +1,21 @@
+//  Copyright (C) 2006-2008  CEA/DEN, EDF R&D
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
 #ifndef _PROCPARSER_HXX_
 #define _PROCPARSER_HXX_
 
@@ -8,6 +26,7 @@
 
 #include "Proc.hxx"
 #include "Container.hxx"
+#include "TypeCode.hxx"
 
 extern YACS::ENGINE::Proc* currentProc;
 
@@ -44,23 +63,24 @@ struct proctypeParser: bloctypeParser<T>
     }
   virtual void type (const mytype& t)
     {
-        DEBTRACE( "type_set" )             
-        currentProc->typeMap[t._name]=currentProc->createType(t._name,t._kind);
+        DEBTRACE( "type_set" );
+        YACS::ENGINE::TypeCode* tt=currentProc->createType(t._name,t._kind);
+        tt->decrRef();
     }
   virtual void sequence (ENGINE::TypeCode* const& t)
     {
-        DEBTRACE( "sequence_set" )             
-        currentProc->typeMap[t->name()]=t;
+        DEBTRACE( "sequence_set" );
+        t->decrRef();
     }
   virtual void objref (ENGINE::TypeCode* const& t)
     {
-        DEBTRACE( "objref_set" )             
-        currentProc->typeMap[t->name()]=t;
+        DEBTRACE( "objref_set" );
+        t->decrRef();
     }
   virtual void struct_ (ENGINE::TypeCode* const& t)
     {
-        DEBTRACE( "struct_set" )             
-        currentProc->typeMap[t->name()]=t;
+        DEBTRACE( "struct_set" );
+        t->decrRef();
     }
   virtual void container (const mycontainer& t)
     {