!Added MOSTLY UNTESTED plugin loading

Fixed a match bug in TestAliasMatch()
Removed pointless implementation of context switching in CPlugin
Redesigned how CPlugins are allocated, deallocated, and instantiated.
Added a basedir function so all code can reference relative paths.  This may be redesigned.
Various other changes

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40214
This commit is contained in:
David Anderson
2006-12-13 11:16:20 +00:00
parent dc60ae49de
commit 23a91de75c
8 changed files with 491 additions and 152 deletions
+5 -5
View File
@@ -15,7 +15,7 @@ void CFunction::Set(funcid_t funcid, CPlugin *plugin)
int CFunction::CallFunction(const cell_t *params, unsigned int num_params, cell_t *result)
{
IPluginContext *ctx = m_pPlugin->m_ctx_current.base;
IPluginContext *ctx = m_pPlugin->m_ctx.base;
while (num_params--)
{
@@ -79,7 +79,7 @@ int CFunction::PushArray(cell_t *inarray, unsigned int cells, cell_t **phys_addr
return SetError(SP_ERROR_PARAMS_MAX);
}
IPluginContext *ctx = m_pPlugin->m_ctx_current.base;
IPluginContext *ctx = m_pPlugin->m_ctx.base;
ParamInfo *info = &m_info[m_curparam];
int err;
@@ -127,7 +127,7 @@ int CFunction::_PushString(const char *string, int sz_flags, int cp_flags, size_
return SetError(SP_ERROR_PARAMS_MAX);
}
IPluginContext *base = m_pPlugin->m_ctx_current.base;
IPluginContext *base = m_pPlugin->m_ctx.base;
ParamInfo *info = &m_info[m_curparam];
size_t cells = (len + sizeof(cell_t) - 1) / sizeof(cell_t);
int err;
@@ -174,7 +174,7 @@ void CFunction::Cancel()
return;
}
IPluginContext *base = m_pPlugin->m_ctx_current.base;
IPluginContext *base = m_pPlugin->m_ctx.base;
while (m_curparam--)
{
@@ -217,7 +217,7 @@ int CFunction::Execute(cell_t *result)
docopies = false;
}
IPluginContext *base = m_pPlugin->m_ctx_current.base;
IPluginContext *base = m_pPlugin->m_ctx.base;
while (numparams--)
{