diff -r 5588f4dbacbf -r e1700463d1d8 core/systems/ExtensionSys.cpp --- a/core/systems/ExtensionSys.cpp Sat Nov 10 03:18:55 2007 +0000 +++ b/core/systems/ExtensionSys.cpp Sat Nov 10 05:46:09 2007 +0000 @@ -53,8 +53,8 @@ CRemoteExtension::CRemoteExtension(IExtensionInterface *pAPI, const char *filename, const char *path) { + Initialize(filename, path); m_pAPI = pAPI; - Initialize(filename, path); } CLocalExtension::CLocalExtension(const char *filename) @@ -200,7 +200,13 @@ bool CExtension::PerformAPICheck(char *error, size_t maxlength) { - if (!m_pAPI || m_pAPI->GetExtensionVersion() > SMINTERFACE_EXTENSIONAPI_VERSION) + if (!m_pAPI) + { + snprintf(error, maxlength, "No IExtensionInterface instance provided"); + return false; + } + + if (m_pAPI->GetExtensionVersion() > SMINTERFACE_EXTENSIONAPI_VERSION) { snprintf(error, maxlength, "Extension version is too new to load (%d, max is %d)", m_pAPI->GetExtensionVersion(), SMINTERFACE_EXTENSIONAPI_VERSION); return false; @@ -1281,3 +1287,4 @@ return pExt; } +