Initial import of forward system

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40185
This commit is contained in:
David Anderson
2006-11-12 01:06:17 +00:00
parent 4d89283924
commit 6bef3c2c5a
7 changed files with 906 additions and 27 deletions
+9 -4
View File
@@ -106,7 +106,7 @@ int CFunction::PushArray(cell_t *inarray, unsigned int cells, cell_t **phys_addr
return SetError(err);
}
info->flags = inarray ? copyback : SMFUNC_COPYBACK_NONE;
info->flags = (inarray || (copyback & SMFUNC_COPYBACK_ALWAYS)) ? copyback : SMFUNC_COPYBACK_NONE;
info->marked = true;
info->size = cells;
m_params[m_curparam] = info->local_addr;
@@ -246,9 +246,14 @@ int CFunction::Execute(cell_t *result, IFunctionCopybackReader *reader)
}
if (temp_info[numparams].orig_addr)
{
memcpy(temp_info[numparams].orig_addr,
temp_info[numparams].phys_addr,
temp_info[numparams].size * sizeof(cell_t));
if (temp_info[numparams].size == 1)
{
*temp_info[numparams].orig_addr = *temp_info[numparams].phys_addr;
} else {
memcpy(temp_info[numparams].orig_addr,
temp_info[numparams].phys_addr,
temp_info[numparams].size * sizeof(cell_t));
}
}
}
_skipcopy: