]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
Migration to Mandrake 10.1 (external patch)
authormpv <mpv@opencascade.com>
Wed, 8 Jun 2005 10:12:56 +0000 (10:12 +0000)
committermpv <mpv@opencascade.com>
Wed, 8 Jun 2005 10:12:56 +0000 (10:12 +0000)
src/Utils/Utils_DESTRUCTEUR_GENERIQUE.cxx
src/Utils/Utils_DESTRUCTEUR_GENERIQUE.hxx
src/Utils/Utils_SINGLETON.hxx

index 62ce955efcf89946da8ca849203b912f95551eb8..aa8406cc43dafd8770026f29f55677f793dab79a 100644 (file)
@@ -46,7 +46,7 @@ static int MYDEBUG = 0;
 static int MYDEBUG = 0;
 #endif
 
-static list<DESTRUCTEUR_GENERIQUE_*> *Destructeurs=0 ;
+std::list<DESTRUCTEUR_GENERIQUE_*> *DESTRUCTEUR_GENERIQUE_::Destructeurs=0 ;
 
 /*! \class ATEXIT_
  *
@@ -78,9 +78,10 @@ public :
          //CCRT
          if ( Make_ATEXIT && !ATEXIT_Done ) {
            //CCRT
-               ASSERT (Destructeurs==0);
+               ASSERT (DESTRUCTEUR_GENERIQUE_::Destructeurs==0);
                if(MYDEBUG) MESSAGE("Construction ATEXIT"); // message necessaire pour utiliser logger dans Nettoyage (cf.BUG KERNEL4561)
-               Destructeurs = new list<DESTRUCTEUR_GENERIQUE_*> ; // Destructeurs alloué dynamiquement (cf. ci-dessous) ,
+               DESTRUCTEUR_GENERIQUE_::Destructeurs = 
+                      new std::list<DESTRUCTEUR_GENERIQUE_*> ; // Destructeurs alloué dynamiquement (cf. ci-dessous) ,
                                                                   // il est utilisé puis détruit par la fonction Nettoyage
                int cr = atexit( Nettoyage );                      // exécute Nettoyage lors de exit, après la destruction des données statiques !
                ASSERT(cr==0) ;
@@ -111,30 +112,30 @@ static ATEXIT_ nettoyage = ATEXIT_( false );      /* singleton statique */
 void Nettoyage( void )
 {
        if(MYDEBUG) BEGIN_OF("Nettoyage( void )") ;
-       ASSERT(Destructeurs) ;
-       if(MYDEBUG) SCRUTE( Destructeurs->size() ) ;
-       if( Destructeurs->size() )
+       ASSERT(DESTRUCTEUR_GENERIQUE_::Destructeurs) ;
+       if(MYDEBUG) SCRUTE( DESTRUCTEUR_GENERIQUE_::Destructeurs->size() ) ;
+       if( DESTRUCTEUR_GENERIQUE_::Destructeurs->size() )
        {
-               list<DESTRUCTEUR_GENERIQUE_*>::iterator it = Destructeurs->end() ;
+               std::list<DESTRUCTEUR_GENERIQUE_*>::iterator it = DESTRUCTEUR_GENERIQUE_::Destructeurs->end() ;
 
                do
                {
                        if(MYDEBUG) MESSAGE( "DESTRUCTION d'un SINGLETON");
                        it-- ;
                        DESTRUCTEUR_GENERIQUE_* ptr = *it ;
-                       //Destructeurs->remove( *it ) ;
+                       //DESTRUCTEUR_GENERIQUE_::Destructeurs->remove( *it ) ;
                        (*ptr)() ;
                        delete ptr ;
-               }while( it!=  Destructeurs->begin() ) ;
+               }while( it!=  DESTRUCTEUR_GENERIQUE_::Destructeurs->begin() ) ;
 
-               Destructeurs->clear() ;
-               if(MYDEBUG) SCRUTE( Destructeurs->size() ) ;
-               ASSERT( Destructeurs->size()==0 ) ;
-               ASSERT( Destructeurs->empty() ) ;
+               DESTRUCTEUR_GENERIQUE_::Destructeurs->clear() ;
+               if(MYDEBUG) SCRUTE( DESTRUCTEUR_GENERIQUE_::Destructeurs->size() ) ;
+               ASSERT( DESTRUCTEUR_GENERIQUE_::Destructeurs->size()==0 ) ;
+               ASSERT( DESTRUCTEUR_GENERIQUE_::Destructeurs->empty() ) ;
        }
 
-       delete Destructeurs;
-       Destructeurs=0;
+       delete DESTRUCTEUR_GENERIQUE_::Destructeurs;
+       DESTRUCTEUR_GENERIQUE_::Destructeurs=0;
        if(MYDEBUG) END_OF("Nettoyage( void )") ;
        return ;
 }
index 6cf3432c1a46a8a7e2fc43a7826dd11dbc2dc0f7..1d95176ec09b744aaa8d38be317ba6eb2e0cf0c0 100644 (file)
@@ -29,6 +29,7 @@
 # if !defined( __DESTRUCTEUR_GENERIQUE__H__ )
 # define __DESTRUCTEUR_GENERIQUE__H__
 
+# include <list>
 # include <CORBA.h>
 # include "utilities.h"
 
@@ -56,6 +57,8 @@
 class DESTRUCTEUR_GENERIQUE_
 {
 public :
+  static std::list<DESTRUCTEUR_GENERIQUE_*> *Destructeurs;
+
   virtual ~DESTRUCTEUR_GENERIQUE_() {}//!< virtual destructor
   static const int Ajout( DESTRUCTEUR_GENERIQUE_ &objet );//!< adds a destruction object to the list of destructions
   virtual void operator()( void )=0 ;//!< performs the destruction
index 79d4843891e54b56d29957014cce2639135c8f64..4447b3de7aed14954917fc5252de4da0688c09e1 100644 (file)
@@ -147,11 +147,11 @@ template <class TYPE> int SINGLETON_<TYPE>::Destruction( void )
 
 
                std::list<DESTRUCTEUR_GENERIQUE_ *>::iterator k ;
-               for( k=DESTRUCTEUR_GENERIQUE_::Destructeurs.begin() ; k!=DESTRUCTEUR_GENERIQUE_::Destructeurs.end();k++)
+               for( k=DESTRUCTEUR_GENERIQUE_::Destructeurs->begin() ; k!=DESTRUCTEUR_GENERIQUE_::Destructeurs->end();k++)
                {
                        if ( *k == PtrSingleton->_Instance )
                        {
-                               DESTRUCTEUR_GENERIQUE_::Destructeurs.erase( k ) ;
+                               DESTRUCTEUR_GENERIQUE_::Destructeurs->erase( k ) ;
                                break ;
                        }
                }