Changeset 20246

Show
Ignore:
Timestamp:
05/22/07 07:20:18 (1 year 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.0/modules/vrjuggler/vrj/Draw/OGL/GlContextData.h

    r19032 r20246  
    145145protected: 
    146146   /** Container for the thread-specific context-specific data. */ 
    147    template<class DataType
     147   template<class DATA_TYPE
    148148   struct ThreadContextData 
    149149   { 
    150150   public: 
     151      typedef std::vector<DATA_TYPE*> data_list_t; 
     152 
    151153      ThreadContextData() 
    152154         : mContextDataVector() 
    153155      {;} 
     156 
     157      ~ThreadContextData() 
     158      { 
     159         for (typename data_list_t::iterator itr = mContextDataVector.begin(); 
     160              mContextDataVector.end() != itr; itr++) 
     161         { 
     162            delete *itr; 
     163            (*itr) = NULL; 
     164         } 
     165         mContextDataVector.clear(); 
     166      } 
    154167 
    155168      /* Makes sure that the vector is at least requiredSize large */ 
     
    161174            while(mContextDataVector.size() < requiredSize)    // Add any new items needed 
    162175            { 
    163                mContextDataVector.push_back(new DataType()); 
     176               mContextDataVector.push_back(new DATA_TYPE()); 
    164177            } 
    165178         } 
    166179      } 
    167180 
    168       std::vector<DataType*> mContextDataVector;   /**< Vector of user data */ 
     181      data_list_t mContextDataVector;   /**< Vector of user data */ 
    169182   }; 
    170183