Changeset 20245

Show
Ignore:
Timestamp:
05/22/07 07:19:45 (2 years ago)
Author:
patrick
Message:

MFT r20233: Fix a memory leak in context-specific data.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • juggler/branches/2.2/modules/vrjuggler/vrj/Draw/OGL/GlContextData.h

    r19729 r20245  
    139139protected: 
    140140   /** Container for the thread-specific context-specific data. */ 
    141    template<class DataType
     141   template<class DATA_TYPE
    142142   struct ThreadContextData 
    143143   { 
    144144   public: 
     145      typedef std::vector<DATA_TYPE*> data_list_t; 
     146 
    145147      ThreadContextData() 
    146148         : mContextDataVector() 
    147149      {;} 
     150 
     151      ~ThreadContextData() 
     152      { 
     153         for (typename data_list_t::iterator itr = mContextDataVector.begin(); 
     154              mContextDataVector.end() != itr; itr++) 
     155         { 
     156            delete *itr; 
     157            (*itr) = NULL; 
     158         } 
     159         mContextDataVector.clear(); 
     160      } 
    148161 
    149162      /* Makes sure that the vector is at least requiredSize large */ 
     
    155168            while(mContextDataVector.size() < requiredSize)    // Add any new items needed 
    156169            { 
    157                mContextDataVector.push_back(new DataType()); 
     170               mContextDataVector.push_back(new DATA_TYPE()); 
    158171            } 
    159172         } 
    160173      } 
    161174 
    162       std::vector<DataType*> mContextDataVector;   /**< Vector of user data */ 
     175      data_list_t mContextDataVector;   /**< Vector of user data */ 
    163176   }; 
    164177