- 617 名前:616 [2007/12/21(金) 01:40:57 ]
- どうやらsq_call関数で関数実行後にスタックをポップしている部分でデータが壊れているようです。
suspendはwakeupでまたスクリプトを起動するのだから、引数の数だけポップする意味がわかりません。 これはバグなのでしょうか? ちなみに自分の使っているsquirrelのバージョンは2.1.1です。 SQRESULT sq_call(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror) { SQObjectPtr res; if(v->Call(v->GetUp(-(params+1)),params,v->_top-params,res,raiseerror?true:false)){ v->Pop(params);//pop closure and args ←※ここ if(retval){ v->Push(res); return SQ_OK; } return SQ_OK; } else { v->Pop(params); return SQ_ERROR; } if(!v->_suspended) v->Pop(params); return sq_throwerror(v,_SC("call failed")); }
|

|