-- [ Picked text/plain from multipart/alternative ] I could be reading this wrong, but with this
*The pointers for this constructor are retrieved from a class called CItemData which loads all items from a data file into a CUtlVector<CItem*> before the call to new CInvItem. The CInventory destructor calls delete on all m_vItems elements, before emptying the *are you saying that 2 vectors both share pointers to the same objects? J * vector. The CItemData destructor does the same for its vector of CItem*.* On Jan 11, 2008 1:55 PM, Minh <[EMAIL PROTECTED]> wrote: > ooh.. someone just got ownucted. > > just kidding :) > > ----- Original Message ----- > From: "Yahn Bernier" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Friday, January 11, 2008 1:26 PM > Subject: RE: [hlcoders] CUtlVector<*>... Memory management? > > > > Well, when talking about a "destructor" the colloquial term is > > "destructed". > > > > YMMV. > > > > Yahn > > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] On Behalf Of Jed > > Sent: Friday, January 11, 2008 1:03 PM > > To: [email protected] > > Subject: Re: [hlcoders] CUtlVector<*>... Memory management? > > > > [pendantic englishman] > > > > *eye twitch* - its "destroyed" not "destructed". > > > > [/pendantic englishman] > > > > On 11/01/2008, Yahn Bernier <[EMAIL PROTECTED]> wrote: > >> If the element type is a pointer: > >> > >> CUtlVector< CMyClass * > vecStuff; > >> > >> Then the underlying object will not be destructed, just the slot > > holding > >> the ptr. > >> > >> If you do: > >> > >> CUtlVector< CMyClass > vecStuff; > >> > >> Then the object gets desctructed (but you also have to worry about > >> implementing a copy constructor or operator =, etc. etc.) > >> > >> Safest thing in the CUtlVector< CMyClass * > case is to loop through > > the > >> objects and call delete on each entry, and then call Purge/RemoveAll > > to > >> free the memory used for the raw pointers. > >> > >> ~CUtlVector will automatically clean up the ptrs, but if you don't > >> delete the objects in the CUtlVector< CMyClass * > case then you'll > > have > >> a leak. > >> > >> Yahn > >> > >> -----Original Message----- > >> From: [EMAIL PROTECTED] > >> [mailto:[EMAIL PROTECTED] On Behalf Of Ronny > >> Schedel > >> Sent: Friday, January 11, 2008 11:50 AM > >> To: [email protected] > >> Subject: Re: [hlcoders] CUtlVector<*>... Memory management? > >> > >> Why you don't look at the code itself? In "Remove" you can see the > >> element > >> will be destroyed by the Destruct function. The Destruct function > > calls > >> the > >> Destructor of the element. > >> > >> Best regards > >> > >> Ronny Schedel > >> > >> > >> > -- > >> > [ Picked text/plain from multipart/alternative ] > >> > Am I right in assuming that if you have a vector of pointers, that > >> point > >> > to > >> > things you create with "new", you have to either call delete on each > >> > element > >> > or use PurgeAndDeleteElements()? Because that's what I've been using > >> up > >> > until recently, where it seems that trying to delete elements from a > >> > pointer > >> > vector on destruction of whatever they are members of just causes > > the > >> game > >> > to crash with a memory error. Removing the calls to delete stop the > >> crash, > >> > but unless CUtlVector automatically cleans up your memory for you, > >> won't > >> > this just create MASSIVE memory leaks? As far as I knew, CUtlVector > >> > didn't > >> > magically look after your memory for you... was I wrong? > >> > > >> > J > >> > -- > >> > > >> > _______________________________________________ > >> > To unsubscribe, edit your list preferences, or view the list > > archives, > >> > please visit: > >> > http://list.valvesoftware.com/mailman/listinfo/hlcoders > >> > > >> > >> > >> _______________________________________________ > >> To unsubscribe, edit your list preferences, or view the list archives, > >> please visit: > >> http://list.valvesoftware.com/mailman/listinfo/hlcoders > >> > >> > >> _______________________________________________ > >> To unsubscribe, edit your list preferences, or view the list archives, > > please visit: > >> http://list.valvesoftware.com/mailman/listinfo/hlcoders > >> > >> > > > > _______________________________________________ > > To unsubscribe, edit your list preferences, or view the list archives, > > please visit: > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > > > _______________________________________________ > > To unsubscribe, edit your list preferences, or view the list archives, > > please visit: > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, > please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > -- _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders

