diff options
author | Paul Gilbert | 2010-08-05 10:16:21 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2010-10-12 22:23:24 +0000 |
commit | 49ea23c532cb0d8ab6e27d290484a1e2daadb347 (patch) | |
tree | 97dff77ee4deeb81f600288d30abb3413300180f /engines/sword25/kernel/callbackregistry.h | |
parent | 1e3b3af5c09ef5b9168436b2276bce612f74c0d2 (diff) | |
download | scummvm-rg350-49ea23c532cb0d8ab6e27d290484a1e2daadb347.tar.gz scummvm-rg350-49ea23c532cb0d8ab6e27d290484a1e2daadb347.tar.bz2 scummvm-rg350-49ea23c532cb0d8ab6e27d290484a1e2daadb347.zip |
SWORD25: Fix for void * conversion errors
It turns out that strict C++ doesn't allow function pointers to be converted to void pointers and vice versa. Since there are two callback function pointer types - one with a KEY_COMMANDS enum parameter, and the other with an unsigned char type, I changed all void * occurances to a function pointer type with an 'int' parameter, and changed all implementation methods to take in an int parameter.
svn-id: r53208
Diffstat (limited to 'engines/sword25/kernel/callbackregistry.h')
-rw-r--r-- | engines/sword25/kernel/callbackregistry.h | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/engines/sword25/kernel/callbackregistry.h b/engines/sword25/kernel/callbackregistry.h index 4197930ae0..38e917cf15 100644 --- a/engines/sword25/kernel/callbackregistry.h +++ b/engines/sword25/kernel/callbackregistry.h @@ -51,6 +51,8 @@ namespace Sword25 { // Klassendeklaration // ----------------------------------------------------------------------------- +typedef void (*CallbackPtr)(int Command); + class BS_CallbackRegistry { public: static BS_CallbackRegistry & GetInstance() { @@ -58,19 +60,19 @@ public: return Instance; } - bool RegisterCallbackFunction(const Common::String &Name, void * Ptr); - void * ResolveCallbackFunction(const Common::String &Name) const; - Common::String ResolveCallbackPointer(void *Ptr) const; + bool RegisterCallbackFunction(const Common::String &Name, CallbackPtr Ptr); + CallbackPtr ResolveCallbackFunction(const Common::String &Name) const; + Common::String ResolveCallbackPointer(CallbackPtr Ptr) const; private: - typedef Common::HashMap<Common::String, void *, Common::CaseSensitiveString_Hash, Common::CaseSensitiveString_EqualTo> NameToPtrMap; + typedef Common::HashMap<Common::String, CallbackPtr, Common::CaseSensitiveString_Hash, Common::CaseSensitiveString_EqualTo> NameToPtrMap; NameToPtrMap m_NameToPtrMap; - typedef Common::HashMap<void *, Common::String, Common::CaseSensitiveString_Hash, Common::CaseSensitiveString_EqualTo> PtrToNameMap; + typedef Common::HashMap<CallbackPtr, Common::String, Common::CaseSensitiveString_Hash, Common::CaseSensitiveString_EqualTo> PtrToNameMap; PtrToNameMap m_PtrToNameMap; - void * FindPtrByName(const Common::String &Name) const; - Common::String FindNameByPtr(void * Ptr) const; - void StoreCallbackFunction(const Common::String & Name, void * Ptr); + CallbackPtr FindPtrByName(const Common::String &Name) const; + Common::String FindNameByPtr(CallbackPtr Ptr) const; + void StoreCallbackFunction(const Common::String &Name, CallbackPtr Ptr); }; } // End of namespace Sword25 |