[Scummvm-cvs-logs] scummvm master -> 818d3981e32b83e2531f63bb603b4c48cba9b412

lordhoto lordhoto at gmail.com
Mon Aug 12 23:31:28 CEST 2013


This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
11eb168582 GUI: Use Domain::const_iterator in EventRecorder code when possible.
774d53045d COMMON: Do not let ConfigManager::Domain inherit from StringMap.
f7d3b06711 COMMON: Get rid of write version of ConfigManager::getGameDomains.
818d3981e3 Merge pull request #377 from lordhoto/config-manager-cleanup


Commit: 11eb168582a8a580bbed0e55e594bded201e39e4
    https://github.com/scummvm/scummvm/commit/11eb168582a8a580bbed0e55e594bded201e39e4
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2013-08-07T18:12:02-07:00

Commit Message:
GUI: Use Domain::const_iterator in EventRecorder code when possible.

Changed paths:
    gui/EventRecorder.cpp
    gui/EventRecorder.h



diff --git a/gui/EventRecorder.cpp b/gui/EventRecorder.cpp
index 4bf5832..21152dd 100644
--- a/gui/EventRecorder.cpp
+++ b/gui/EventRecorder.cpp
@@ -372,8 +372,8 @@ SdlMixerManager *EventRecorder::getMixerManager() {
 	}
 }
 
-void EventRecorder::getConfigFromDomain(Common::ConfigManager::Domain *domain) {
-	for (Common::ConfigManager::Domain::iterator entry = domain->begin(); entry!= domain->end(); ++entry) {
+void EventRecorder::getConfigFromDomain(const Common::ConfigManager::Domain *domain) {
+	for (Common::ConfigManager::Domain::const_iterator entry = domain->begin(); entry!= domain->end(); ++entry) {
 		_playbackFile->getHeader().settingsRecords[entry->_key] = entry->_value;
 	}
 }
@@ -386,7 +386,7 @@ void EventRecorder::getConfig() {
 
 
 void EventRecorder::applyPlaybackSettings() {
-	for (Common::StringMap::iterator i = _playbackFile->getHeader().settingsRecords.begin(); i != _playbackFile->getHeader().settingsRecords.end(); ++i) {
+	for (Common::StringMap::const_iterator i = _playbackFile->getHeader().settingsRecords.begin(); i != _playbackFile->getHeader().settingsRecords.end(); ++i) {
 		Common::String currentValue = ConfMan.get(i->_key);
 		if (currentValue != i->_value) {
 			ConfMan.set(i->_key, i->_value, ConfMan.kTransientDomain);
@@ -400,7 +400,7 @@ void EventRecorder::applyPlaybackSettings() {
 }
 
 void EventRecorder::removeDifferentEntriesInDomain(Common::ConfigManager::Domain *domain) {
-	for (Common::ConfigManager::Domain::iterator entry = domain->begin(); entry!= domain->end(); ++entry) {
+	for (Common::ConfigManager::Domain::const_iterator entry = domain->begin(); entry!= domain->end(); ++entry) {
 		if (_playbackFile->getHeader().settingsRecords.find(entry->_key) == _playbackFile->getHeader().settingsRecords.end()) {
 			debugC(1, kDebugLevelEventRec, "playback:action=\"Apply settings\" checksettings:key=%s storedvalue=%s currentvalue="" result=different", entry->_key.c_str(), entry->_value.c_str());
 			domain->erase(entry->_key);
diff --git a/gui/EventRecorder.h b/gui/EventRecorder.h
index 68ffe16..b2a549e 100644
--- a/gui/EventRecorder.h
+++ b/gui/EventRecorder.h
@@ -199,7 +199,7 @@ private:
 	void setFileHeader();
 	void setGameMd5(const ADGameDescription *gameDesc);
 	void getConfig();
-	void getConfigFromDomain(Common::ConfigManager::Domain *domain);
+	void getConfigFromDomain(const Common::ConfigManager::Domain *domain);
 	void removeDifferentEntriesInDomain(Common::ConfigManager::Domain *domain);
 	void applyPlaybackSettings();
 


Commit: 774d53045dd92ec36f6a6c13eb9771ea3eb5c491
    https://github.com/scummvm/scummvm/commit/774d53045dd92ec36f6a6c13eb9771ea3eb5c491
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2013-08-07T18:14:23-07:00

Commit Message:
COMMON: Do not let ConfigManager::Domain inherit from StringMap.

Instead we provide wrapper functionality now. Intuitively a Domain is not a
simple StringMap.

Changed paths:
    common/config-manager.h



diff --git a/common/config-manager.h b/common/config-manager.h
index d43a7be..d79f647 100644
--- a/common/config-manager.h
+++ b/common/config-manager.h
@@ -47,12 +47,31 @@ class ConfigManager : public Singleton<ConfigManager> {
 
 public:
 
-	class Domain : public StringMap {
+	class Domain {
 	private:
+		StringMap _entries;
 		StringMap _keyValueComments;
 		String _domainComment;
 
 	public:
+		typedef StringMap::const_iterator const_iterator;
+		const_iterator begin() const { return _entries.begin(); }
+		const_iterator end()   const { return _entries.end(); }
+
+		bool empty() const { return _entries.empty(); }
+
+		bool contains(const String &key) const { return _entries.contains(key); }
+
+		String &operator[](const String &key) { return _entries[key]; }
+		const String &operator[](const String &key) const { return _entries[key]; }
+
+		String &getVal(const String &key) { return _entries.getVal(key); }
+		const String &getVal(const String &key) const { return _entries.getVal(key); }
+
+		void clear() { _entries.clear(); }
+
+		void erase(const String &key) { _entries.erase(key); }
+
 		void setDomainComment(const String &comment);
 		const String &getDomainComment() const;
 


Commit: f7d3b0671124dba28541c56fb74edd535fdad386
    https://github.com/scummvm/scummvm/commit/f7d3b0671124dba28541c56fb74edd535fdad386
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2013-08-11T16:33:29-07:00

Commit Message:
COMMON: Get rid of write version of ConfigManager::getGameDomains.

This can be abused to insert Domains into the game domains without any checks.
Instead, only write iterator access is given.

Changed paths:
    base/commandLine.cpp
    common/config-manager.h



diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index a39c748..a032f37 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -827,9 +827,8 @@ void upgradeTargets() {
 
 	printf("Upgrading all your existing targets\n");
 
-	Common::ConfigManager::DomainMap &domains = ConfMan.getGameDomains();
-	Common::ConfigManager::DomainMap::iterator iter = domains.begin();
-	for (iter = domains.begin(); iter != domains.end(); ++iter) {
+	Common::ConfigManager::DomainMap::iterator iter = ConfMan.beginGameDomains();
+	for (; iter != ConfMan.endGameDomains(); ++iter) {
 		Common::ConfigManager::Domain &dom = iter->_value;
 		Common::String name(iter->_key);
 		Common::String gameid(dom.getVal("gameid"));
diff --git a/common/config-manager.h b/common/config-manager.h
index d79f647..31966cd 100644
--- a/common/config-manager.h
+++ b/common/config-manager.h
@@ -162,7 +162,8 @@ public:
 	bool				hasMiscDomain(const String &domName) const;
 
 	const DomainMap &	getGameDomains() const { return _gameDomains; }
-	DomainMap &			getGameDomains() { return _gameDomains; }
+	DomainMap::iterator beginGameDomains() { return _gameDomains.begin(); }
+	DomainMap::iterator endGameDomains() { return _gameDomains.end(); }
 
 	static void			defragment();	// move in memory to reduce fragmentation
 	void 				copyFrom(ConfigManager &source);


Commit: 818d3981e32b83e2531f63bb603b4c48cba9b412
    https://github.com/scummvm/scummvm/commit/818d3981e32b83e2531f63bb603b4c48cba9b412
Author: Johannes Schickel (lordhoto at gmail.com)
Date: 2013-08-12T14:30:22-07:00

Commit Message:
Merge pull request #377 from lordhoto/config-manager-cleanup

Config Manager Cleanup

Changed paths:
    base/commandLine.cpp
    common/config-manager.h
    gui/EventRecorder.cpp
    gui/EventRecorder.h









More information about the Scummvm-git-logs mailing list