[Scummvm-cvs-logs] CVS: scummvm/common map.h,1.14,1.15 config-file.cpp,1.17,1.18

Max Horn fingolfin at users.sourceforge.net
Sun Oct 5 07:03:10 CEST 2003


Update of /cvsroot/scummvm/scummvm/common
In directory sc8-pr-cvs1:/tmp/cvs-serv11522

Modified Files:
	map.h config-file.cpp 
Log Message:
cleaned up iterator code in Map

Index: map.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/map.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- map.h	5 Oct 2003 13:10:53 -0000	1.14
+++ map.h	5 Oct 2003 14:02:37 -0000	1.15
@@ -61,16 +61,19 @@
 	}
 
 public:
-	class Iterator {
+	class ConstIterator {
+		friend class Map<Key, Value>;
 	protected:
 		Node *_node;
+		ConstIterator(Node *node) : _node(node) {}
 		
 	public:
-		Iterator(Node *node = 0) : _node(node) {}
+		ConstIterator() : _node(0) {}
+
 		Node &operator *() { assert(_node != 0); return *_node; }
 		const Node &operator *() const { assert(_node != 0); return *_node; }
         const Node *operator->() const { assert(_node != 0); return _node; }
-        bool operator !=(const Iterator &iter) const { return _node != iter._node; }
+        bool operator !=(const ConstIterator &iter) const { return _node != iter._node; }
 		void operator ++() {
 			if (!_node)
 				return;
@@ -188,23 +191,23 @@
 		// different walk order (infix comes to mind).
 		if (map.isEmpty())
 			return;
-		Iterator x(map.begin()), e(map.end());
+		ConstIterator x(map.begin()), e(map.end());
 		for (; x != e; ++x) {
 			(*this)[x->_key] = x->_value;
 		}
 	}
 
-	Iterator	begin() const {
+	ConstIterator	begin() const {
 		Node *node = _root;
 		if (node) {
 			while (node->_left)
 				node = node->_left;
 		}
-		return Iterator(node);
+		return ConstIterator(node);
 	}
 
-	Iterator	end() const {
-		return Iterator();
+	ConstIterator	end() const {
+		return ConstIterator();
 	}
 
 protected:

Index: config-file.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/config-file.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- config-file.cpp	2 Oct 2003 17:43:01 -0000	1.17
+++ config-file.cpp	5 Oct 2003 14:02:37 -0000	1.18
@@ -164,12 +164,12 @@
 	if (!(cfg_file = fopen(filename.c_str(), "w"))) {
 		debug(1, "Unable to write configuration file: %s.\n", filename.c_str());
 	} else {
-		DomainMap::Iterator d;
+		DomainMap::ConstIterator d;
 		for (d = domains.begin(); d != domains.end(); ++d) {
 			fprintf(cfg_file, "[%s]\n", d->_key.c_str());
 
 			const StringMap &data = d->_value;
-			StringMap::Iterator x;
+			StringMap::ConstIterator x;
 			for (x = data.begin(); x != data.end(); ++x) {
 				const String &value = x->_value;
 				if (!value.isEmpty())
@@ -209,7 +209,7 @@
 }
 
 void Config::merge_config(const Config &c) {
-	DomainMap::Iterator d, end(c.domains.end());
+	DomainMap::ConstIterator d, end(c.domains.end());
 	for (d = c.domains.begin(); d != end; ++d) {
 		domains[d->_key].merge(d->_value);
 	}
@@ -221,7 +221,7 @@
 
 const int Config::count_domains() {
 	int count = 0;
-	DomainMap::Iterator d, end(domains.end());
+	DomainMap::ConstIterator d, end(domains.end());
 	for (d = domains.begin(); d != end; ++d)
 		count++;
 
@@ -230,7 +230,7 @@
 
 Common::StringList Config::get_domains() {
 	StringList domainNames;
-	DomainMap::Iterator d, end(domains.end());
+	DomainMap::ConstIterator d, end(domains.end());
 	for (d = domains.begin(); d != end; ++d) {
 		domainNames.push_back(d->_key);
 	}





More information about the Scummvm-git-logs mailing list