[Scummvm-git-logs] scummvm master -> ee4799c51aee8096968f9088f85b915dfac9c109

sev- sev at scummvm.org
Sat Oct 17 18:16:38 UTC 2020


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

Summary:
d83a38e0e6 COMMON: HashMap::tryGetVal function
ee4799c51a COMMON: ConfMan::Domain::tryGetVal


Commit: d83a38e0e65d6e17c08ee3bba4482acb1a9dfde6
    https://github.com/scummvm/scummvm/commit/d83a38e0e65d6e17c08ee3bba4482acb1a9dfde6
Author: Henrik "Henke37" Andersson (henke at henke37.cjb.net)
Date: 2020-10-17T20:16:33+02:00

Commit Message:
COMMON: HashMap::tryGetVal function

Changed paths:
    common/hashmap.h


diff --git a/common/hashmap.h b/common/hashmap.h
index 804f179da9..2795ca1d01 100644
--- a/common/hashmap.h
+++ b/common/hashmap.h
@@ -252,6 +252,7 @@ public:
 	Val &getVal(const Key &key);
 	const Val &getVal(const Key &key) const;
 	const Val &getVal(const Key &key, const Val &defaultVal) const;
+	bool tryGetVal(const Key &key, Val &out) const;
 	void setVal(const Key &key, const Val &val);
 
 	void clear(bool shrinkArray = 0);
@@ -592,6 +593,17 @@ const Val &HashMap<Key, Val, HashFunc, EqualFunc>::getVal(const Key &key, const
 		return defaultVal;
 }
 
+template<class Key, class Val, class HashFunc, class EqualFunc>
+bool HashMap<Key, Val, HashFunc, EqualFunc>::tryGetVal(const Key &key, Val &out) const {
+	size_type ctr = lookup(key);
+	if (_storage[ctr] != nullptr) {
+		out = _storage[ctr]->_value;
+		return true;
+	} else {
+		return false;
+	}
+}
+
 template<class Key, class Val, class HashFunc, class EqualFunc>
 void HashMap<Key, Val, HashFunc, EqualFunc>::setVal(const Key &key, const Val &val) {
 	size_type ctr = lookupAndCreateIfMissing(key);


Commit: ee4799c51aee8096968f9088f85b915dfac9c109
    https://github.com/scummvm/scummvm/commit/ee4799c51aee8096968f9088f85b915dfac9c109
Author: Henrik "Henke37" Andersson (henke at henke37.cjb.net)
Date: 2020-10-17T20:16:33+02:00

Commit Message:
COMMON: ConfMan::Domain::tryGetVal

Changed paths:
    common/config-manager.h


diff --git a/common/config-manager.h b/common/config-manager.h
index e632f23eba..07cb73b949 100644
--- a/common/config-manager.h
+++ b/common/config-manager.h
@@ -58,37 +58,38 @@ public:
 
 	class Domain {
 	private:
-		StringMap     _entries;
-		StringMap     _keyValueComments;
-		String        _domainComment;
+		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 empty() const { return _entries.empty(); }
 
-		bool           contains(const String &key) const { return _entries.contains(key); }
+		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 &operator[](const String &key) { return _entries[key]; }
+		const String &operator[](const String &key) const { return _entries[key]; }
 
-		void           setVal(const String &key, const String &value) { _entries.setVal(key, value); }
+		void setVal(const String &key, const String &value) { _entries.setVal(key, value); }
 
-		String        &getVal(const String &key) { return _entries.getVal(key); }
-		const String  &getVal(const String &key) const { return _entries.getVal(key); }
+		String &getVal(const String &key) { return _entries.getVal(key); }
+		const String &getVal(const String &key) const { return _entries.getVal(key); }
+		bool tryGetVal(const String &key, String &out) const { return _entries.tryGetVal(key, out); }
 
-		void           clear() { _entries.clear(); }
+		void clear() { _entries.clear(); }
 
-		void           erase(const String &key) { _entries.erase(key); }
+		void erase(const String &key) { _entries.erase(key); }
 
-		void           setDomainComment(const String &comment);
-		const String  &getDomainComment() const;
+		void setDomainComment(const String &comment);
+		const String &getDomainComment() const;
 
-		void           setKVComment(const String &key, const String &comment);
-		const String  &getKVComment(const String &key) const;
-		bool           hasKVComment(const String &key) const;
+		void setKVComment(const String &key, const String &comment);
+		const String &getKVComment(const String &key) const;
+		bool hasKVComment(const String &key) const;
 	};
 
 	typedef HashMap<String, Domain, IgnoreCase_Hash, IgnoreCase_EqualTo> DomainMap;
@@ -115,7 +116,7 @@ public:
 	 * @param domName Name of the domain to retrieve.
 	 * @return Pointer to the domain, or 0 if the domain does not exist.
 	 */
-	Domain                  *getDomain(const String &domName);
+	Domain *			getDomain(const String &domName);
 	const Domain            *getDomain(const String &domName) const; /*!< @overload */
 
 
@@ -126,16 +127,16 @@ public:
 	 * @{
 	 */
 
-	bool                     hasKey(const String &key) const;
-	const String            &get(const String &key) const;
-	void                     set(const String &key, const String &value);
+	bool				hasKey(const String &key) const;
+	const String &		get(const String &key) const;
+	void				set(const String &key, const String &value);
     /** @} */
-	
+
 	/**
 	 * Update a configuration entry for the active domain and flush
 	 * the configuration file to disk if the value changed.
 	 */
-	void                     setAndFlush(const String &key, const Common::String &value);
+	void				setAndFlush(const String &key, const Common::String &value);
 
 #if 1
     /**
@@ -148,11 +149,11 @@ public:
 	 * @{
 	 */
 
-	bool                     hasKey(const String &key, const String &domName) const;
-	const String            &get(const String &key, const String &domName) const;
-	void                     set(const String &key, const String &value, const String &domName);
+	bool				hasKey(const String &key, const String &domName) const;
+	const String &		get(const String &key, const String &domName) const;
+	void				set(const String &key, const String &value, const String &domName);
 
-	void                     removeKey(const String &key, const String &domName);
+	void				removeKey(const String &key, const String &domName);
 	/** @} */
 #endif
 
@@ -167,10 +168,10 @@ public:
 	void                     setBool(const String &key, bool value, const String &domName = String()); /*!< Set integer value. */
 
 
-	void                     registerDefault(const String &key, const String &value);
-	void                     registerDefault(const String &key, const char *value);
-	void                     registerDefault(const String &key, int value);
-	void                     registerDefault(const String &key, bool value);
+	void				registerDefault(const String &key, const String &value);
+	void				registerDefault(const String &key, const char *value);
+	void				registerDefault(const String &key, int value);
+	void				registerDefault(const String &key, bool value);
 
 	void                     flushToDisk(); /*!< Flush configuration to disk. */
 
@@ -187,43 +188,43 @@ public:
 	void                     removeMiscDomain(const String &domName); /*!< Remove a miscellaneous domain. */
 	void                     renameMiscDomain(const String &oldName, const String &newName); /*!< Rename a miscellaneous domain. */
 
-	bool                     hasGameDomain(const String &domName) const;
-	bool                     hasMiscDomain(const String &domName) const;
+	bool				hasGameDomain(const String &domName) const;
+	bool				hasMiscDomain(const String &domName) const;
 
-	const DomainMap         &getGameDomains() const { return _gameDomains; }
-	DomainMap::iterator      beginGameDomains() { return _gameDomains.begin(); }
-	DomainMap::iterator      endGameDomains() { return _gameDomains.end(); }
+	const DomainMap &	getGameDomains() const { 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);
+	static void			defragment(); // move in memory to reduce fragmentation
+	void 				copyFrom(ConfigManager &source);
 	/** @} */
 private:
 	friend class Singleton<SingletonBaseType>;
 	ConfigManager();
 
-	void                     loadFromStream(SeekableReadStream &stream);
-	void                     addDomain(const String &domainName, const Domain &domain);
-	void                     writeDomain(WriteStream &stream, const String &name, const Domain &domain);
-	void                     renameDomain(const String &oldName, const String &newName, DomainMap &map);
+	void			loadFromStream(SeekableReadStream &stream);
+	void			addDomain(const String &domainName, const Domain &domain);
+	void			writeDomain(WriteStream &stream, const String &name, const Domain &domain);
+	void			renameDomain(const String &oldName, const String &newName, DomainMap &map);
 
-	Domain                  _transientDomain;
-	DomainMap               _gameDomains;
-	DomainMap               _miscDomains; // Any other domains
-	Domain                  _appDomain;
-	Domain                  _defaultsDomain;
+	Domain			_transientDomain;
+	DomainMap		_gameDomains;
+	DomainMap		_miscDomains; // Any other domains
+	Domain			_appDomain;
+	Domain			_defaultsDomain;
 
-	Domain                  _keymapperDomain;
+	Domain			_keymapperDomain;
 
 #ifdef USE_CLOUD
-	Domain                  _cloudDomain;
+	Domain			_cloudDomain;
 #endif
 
-	Array<String>           _domainSaveOrder;
+	Array<String>	_domainSaveOrder;
 
-	String                  _activeDomainName;
-	Domain                 *_activeDomain;
+	String			_activeDomainName;
+	Domain *		_activeDomain;
 
-	String                  _filename;
+	String			_filename;
 };
 
 /** @} */
@@ -231,6 +232,6 @@ private:
 } // End of namespace Common
 
 /** Shortcut for accessing the configuration manager. */
-#define ConfMan                  Common::ConfigManager::instance()
+#define ConfMan		Common::ConfigManager::instance()
 
 #endif




More information about the Scummvm-git-logs mailing list