comparison runtime/func.h @ 159:d1e206ff75f9

Fix some bugs involving calling a worker object
author Mike Pavone <pavone@retrodev.com>
date Fri, 07 Jan 2011 03:17:20 -0500
parents b75ec364cecc
children d2b941f82d74
comparison
equal deleted inserted replaced
158:0e06f29aa83d 159:d1e206ff75f9
232 {\ 232 {\
233 temp_cdata = cdata->lastframe;\ 233 temp_cdata = cdata->lastframe;\
234 free_stack(ct, cdata);\ 234 free_stack(ct, cdata);\
235 cdata = alloc_cdata(ct, temp_cdata, numparams + ((t_Worker *)func)->payload.Count);\ 235 cdata = alloc_cdata(ct, temp_cdata, numparams + ((t_Worker *)func)->payload.Count);\
236 }\ 236 }\
237 vcparam_offset = 0; 237 vcparam_offset = 0;\
238 last_vcparam = -1;
238 239
239 #define VCPrepCall(func,numparams) \ 240 #define VCPrepCall(func,numparams) \
240 cdata = alloc_cdata(ct, cdata, numparams + ((t_Worker *)func)->payload.Count);\ 241 cdata = alloc_cdata(ct, cdata, numparams + ((t_Worker *)func)->payload.Count);\
241 vcparam_offset = 0; 242 vcparam_offset = 0;\
243 last_vcparam = -1;
242 244
243 #define VCSetParam(func,num,value) \ 245 #define VCSetParam(func,num,value) \
244 while((num+vcparam_offset) < ((t_Worker *)func)->payload.Size && ((object **)(((t_Worker *)func)+1))[num+vcparam_offset])\ 246 while((num+vcparam_offset) < ((t_Worker *)func)->payload.Size && ((object **)(((t_Worker *)func)+1))[num+vcparam_offset])\
245 {\ 247 {\
246 cdata->params[num+vcparam_offset] = add_ref(((object **)(((t_Worker *)func)+1))[num+vcparam_offset]);\ 248 cdata->params[num+vcparam_offset] = add_ref(((object **)(((t_Worker *)func)+1))[num+vcparam_offset]);\