diff -r fe406c5f2aeb -r 1e1570518051 core/systems/CFunction.cpp --- a/core/systems/CFunction.cpp Sun Nov 12 01:06:17 2006 +0000 +++ b/core/systems/CFunction.cpp Sun Nov 12 02:24:45 2006 +0000 @@ -114,7 +114,10 @@ if (inarray) { - memcpy(info->phys_addr, inarray, sizeof(cell_t) * cells); + if (!(copyback & SMFUNC_ARRAY_NOINIT)) + { + memcpy(info->phys_addr, inarray, sizeof(cell_t) * cells); + } info->orig_addr = inarray; } else { info->orig_addr = info->phys_addr; @@ -257,7 +260,7 @@ } } _skipcopy: - base->HeapRelease(temp_info[numparams].local_addr); + base->HeapPop(temp_info[numparams].local_addr); temp_info[numparams].marked = false; }