[Scummvm-cvs-logs] SF.net SVN: scummvm: [28914] scummvm/trunk/engines/lure/res_struct.h
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Sun Sep 16 06:03:51 CEST 2007
Revision: 28914
http://scummvm.svn.sourceforge.net/scummvm/?rev=28914&view=rev
Author: dreammaster
Date: 2007-09-15 21:03:50 -0700 (Sat, 15 Sep 2007)
Log Message:
-----------
Changed ManagedList to make it more thread safe
Modified Paths:
--------------
scummvm/trunk/engines/lure/res_struct.h
Modified: scummvm/trunk/engines/lure/res_struct.h
===================================================================
--- scummvm/trunk/engines/lure/res_struct.h 2007-09-16 03:20:10 UTC (rev 28913)
+++ scummvm/trunk/engines/lure/res_struct.h 2007-09-16 04:03:50 UTC (rev 28914)
@@ -254,23 +254,28 @@
}
void clear() {
- typename Common::List<T>::iterator i;
- for (i = Common_List::begin(); i != Common_List::end(); ++i)
- delete *i;
- Common_List::clear();
+ typename Common_List::iterator i = Common_List::begin();
+ while (i != Common_List::end()) {
+ T v = *i;
+ i = Common_List::erase(i);
+ delete v;
+ }
}
- typename Common::List<T>::iterator erase(typename Common::List<T>::iterator pos) {
- delete *pos;
- return Common_List::erase(pos);
+ typename Common_List::iterator erase(typename Common_List::iterator pos) {
+ T obj = *pos;
+ typename Common_List::iterator result = Common_List::erase(pos);
+ delete obj;
+ return result;
}
- typename Common::List<T>::iterator erase(typename Common::List<T>::iterator first,
- typename Common::List<T>::iterator last) {
- typename Common::List<T>::iterator i;
- for (i = first; i != last; ++i)
- delete *i;
- return Common_List::erase(first, last);
+ typename Common_List::iterator erase(typename Common_List::iterator first,
+ typename Common_List::iterator last) {
+
+ while (first != last)
+ erase(first++);
+
+ return last;
}
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list