diff --git a/rabbit/Closure.cpp b/rabbit/Closure.cpp index 0afe7e2..fbd55bd 100644 --- a/rabbit/Closure.cpp +++ b/rabbit/Closure.cpp @@ -137,7 +137,7 @@ bool rabbit::Closure::load(rabbit::VirtualMachine *v,rabbit::UserPointer up,SQRE rabbit::ObjectPtr func; _CHECK_IO(rabbit::FunctionProto::load(v,up,read,func)); _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_TAIL)); - ret = rabbit::Closure::create(_get_shared_state(v),_funcproto(func),v->_roottable.toTable()->getWeakRef(rabbit::OT_TABLE)); + ret = rabbit::Closure::create(_get_shared_state(v),func.toFunctionProto(),v->_roottable.toTable()->getWeakRef(rabbit::OT_TABLE)); //FIXME: load an root for this closure return true; } diff --git a/rabbit/Compiler.cpp b/rabbit/Compiler.cpp index 46414cf..cbb0174 100644 --- a/rabbit/Compiler.cpp +++ b/rabbit/Compiler.cpp @@ -205,7 +205,7 @@ public: _fs->setStacksize(0); o =_fs->buildProto(); #ifdef _DEBUG_DUMP - _fs->dump(_funcproto(o)); + _fs->dump(o.toFunctionProto()); #endif } else { diff --git a/rabbit/FunctionProto.cpp b/rabbit/FunctionProto.cpp index abcaffe..6e336ff 100644 --- a/rabbit/FunctionProto.cpp +++ b/rabbit/FunctionProto.cpp @@ -189,7 +189,7 @@ bool rabbit::FunctionProto::save(rabbit::VirtualMachine *v,rabbit::UserPointer u _CHECK_IO(WriteTag(v,write,up,SQ_CLOSURESTREAM_PART)); for(i=0;isave(v,up,write)); + _CHECK_IO(_functions[i].toFunctionProto()->save(v,up,write)); } _CHECK_IO(SafeWrite(v,write,up,&_stacksize,sizeof(_stacksize))); _CHECK_IO(SafeWrite(v,write,up,&_bgenerator,sizeof(_bgenerator))); @@ -268,7 +268,7 @@ bool rabbit::FunctionProto::load(rabbit::VirtualMachine *v,rabbit::UserPointer u _CHECK_IO(CheckTag(v,read,up,SQ_CLOSURESTREAM_PART)); for(i = 0; i < nfunctions; i++){ - _CHECK_IO(_funcproto(o)->load(v, up, read, o)); + _CHECK_IO(o.toFunctionProto()->load(v, up, read, o)); f->_functions[i] = o; } _CHECK_IO(SafeRead(v,read,up, &f->_stacksize, sizeof(f->_stacksize))); diff --git a/rabbit/Object.hpp b/rabbit/Object.hpp index 1aa0d69..4f6eea0 100644 --- a/rabbit/Object.hpp +++ b/rabbit/Object.hpp @@ -149,7 +149,6 @@ namespace rabbit { #define is_delegable(t) (sq_type(t)&SQOBJECT_DELEGABLE) #define raw_type(obj) _RAW_TYPE((obj)._type) - #define _funcproto(obj) ((obj)._unVal.pFunctionProto) #define _class(obj) ((obj)._unVal.pClass) #define _instance(obj) ((obj)._unVal.pInstance) #define _delegable(obj) ((rabbit::Delegable *)(obj)._unVal.pDelegable) diff --git a/rabbit/sqapi.cpp b/rabbit/sqapi.cpp index 4bca240..9ee3e45 100644 --- a/rabbit/sqapi.cpp +++ b/rabbit/sqapi.cpp @@ -149,7 +149,7 @@ rabbit::Result rabbit::sq_compile(rabbit::VirtualMachine* v,SQLEXREADFUNC read,r rabbit::ObjectPtr o; #ifndef NO_COMPILER if(compile(v, read, p, sourcename, o, raiseerror?true:false, _get_shared_state(v)->_debuginfo)) { - v->push(rabbit::Closure::create(_get_shared_state(v), _funcproto(o), v->_roottable.toTable()->getWeakRef(rabbit::OT_TABLE))); + v->push(rabbit::Closure::create(_get_shared_state(v), o.toFunctionProto(), v->_roottable.toTable()->getWeakRef(rabbit::OT_TABLE))); return SQ_OK; } return SQ_ERROR;