From f882c9fedcf20f7b4104465aa43f3c34dc5363c7 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Thu, 28 Jun 2018 00:09:15 +0200 Subject: [PATCH] [DEV] build and execute again --- rabbit-std/sqstdaux.cpp | 1 + rabbit-std/sqstdio.cpp | 2 +- rabbit-std/sqstdmath.hpp | 1 + rabbit-std/sqstdstream.hpp | 2 ++ rabbit-std/sqstdstring.hpp | 2 ++ rabbit-std/sqstdsystem.cpp | 2 ++ rabbit/ExceptionTrap.hpp | 2 +- rabbit/VirtualMachine.hpp | 1 + rabbit/sqapi.cpp | 10 ++++++---- rabbit/sqbaselib.cpp | 11 +++++++---- rabbit/sqclass.cpp | 15 +++++++++------ rabbit/sqclass.hpp | 2 +- rabbit/sqclosure.hpp | 6 +++--- rabbit/sqdebug.cpp | 2 ++ rabbit/sqfuncproto.hpp | 6 +++--- rabbit/sqobject.cpp | 2 +- rabbit/sqstate.cpp | 11 ++++++----- rabbit/sqstate.hpp | 1 + rabbit/sqtable.cpp | 2 ++ 19 files changed, 52 insertions(+), 29 deletions(-) diff --git a/rabbit-std/sqstdaux.cpp b/rabbit-std/sqstdaux.cpp index f0e5bd4..19f45ca 100644 --- a/rabbit-std/sqstdaux.cpp +++ b/rabbit-std/sqstdaux.cpp @@ -9,6 +9,7 @@ #include #include #include +#include void sqstd_printcallstack(rabbit::VirtualMachine* v) { diff --git a/rabbit-std/sqstdio.cpp b/rabbit-std/sqstdio.cpp index 03f3bf0..41f38e6 100644 --- a/rabbit-std/sqstdio.cpp +++ b/rabbit-std/sqstdio.cpp @@ -136,7 +136,7 @@ static int64_t _file_constructor(rabbit::VirtualMachine* v) bool owns = true; SQFile *f; SQFILE newf; - if(sq_gettype(v,2) == rabbit::OT_STRING && sq_gettype(v,3) == OT_STRING) { + if(sq_gettype(v,2) == rabbit::OT_STRING && sq_gettype(v,3) == rabbit::OT_STRING) { sq_getstring(v, 2, &filename); sq_getstring(v, 3, &mode); newf = sqstd_fopen(filename, mode); diff --git a/rabbit-std/sqstdmath.hpp b/rabbit-std/sqstdmath.hpp index 3722a48..79cbc2c 100644 --- a/rabbit-std/sqstdmath.hpp +++ b/rabbit-std/sqstdmath.hpp @@ -8,6 +8,7 @@ #pragma once #include +#include RABBIT_API rabbit::Result sqstd_register_mathlib(rabbit::VirtualMachine* v); diff --git a/rabbit-std/sqstdstream.hpp b/rabbit-std/sqstdstream.hpp index c9c8b7f..9ea479a 100644 --- a/rabbit-std/sqstdstream.hpp +++ b/rabbit-std/sqstdstream.hpp @@ -7,6 +7,8 @@ */ #pragma once +#include + int64_t _stream_readblob(rabbit::VirtualMachine* v); int64_t _stream_readline(rabbit::VirtualMachine* v); int64_t _stream_readn(rabbit::VirtualMachine* v); diff --git a/rabbit-std/sqstdstring.hpp b/rabbit-std/sqstdstring.hpp index 84bf7da..a62cb85 100644 --- a/rabbit-std/sqstdstring.hpp +++ b/rabbit-std/sqstdstring.hpp @@ -7,6 +7,8 @@ */ #pragma once +#include + typedef unsigned int SQRexBool; typedef struct SQRex SQRex; diff --git a/rabbit-std/sqstdsystem.cpp b/rabbit-std/sqstdsystem.cpp index 3d46e30..46b080b 100644 --- a/rabbit-std/sqstdsystem.cpp +++ b/rabbit-std/sqstdsystem.cpp @@ -27,6 +27,8 @@ #define screname rename #endif +#include + static int64_t _system_getenv(rabbit::VirtualMachine* v) { const rabbit::Char *s; diff --git a/rabbit/ExceptionTrap.hpp b/rabbit/ExceptionTrap.hpp index 6e924b3..53cdc82 100644 --- a/rabbit/ExceptionTrap.hpp +++ b/rabbit/ExceptionTrap.hpp @@ -10,8 +10,8 @@ #include #include +struct SQInstruction; namespace rabbit { - struct SQInstruction; class ExceptionTrap { public: ExceptionTrap() { diff --git a/rabbit/VirtualMachine.hpp b/rabbit/VirtualMachine.hpp index d9de73b..9fb6d7a 100644 --- a/rabbit/VirtualMachine.hpp +++ b/rabbit/VirtualMachine.hpp @@ -12,6 +12,7 @@ #include #include #include +#include #define MAX_NATIVE_CALLS 100 diff --git a/rabbit/sqapi.cpp b/rabbit/sqapi.cpp index 6ebe8a6..917c7c5 100644 --- a/rabbit/sqapi.cpp +++ b/rabbit/sqapi.cpp @@ -16,6 +16,7 @@ #include #include #include +#include static bool sq_aux_gettypedarg(rabbit::VirtualMachine* v,int64_t idx,rabbit::ObjectType type,rabbit::ObjectPtr **o) { @@ -299,7 +300,8 @@ rabbit::Bool sq_instanceof(rabbit::VirtualMachine* v) { rabbit::ObjectPtr &inst = stack_get(v,-1); rabbit::ObjectPtr &cl = stack_get(v,-2); - if(sq_type(inst) != rabbit::OT_INSTANCE || sq_type(cl) != OT_CLASS) + if( sq_type(inst) != rabbit::OT_INSTANCE + || sq_type(cl) != rabbit::OT_CLASS) return sq_throwerror(v,_SC("invalid param type")); return _instance(inst)->instanceOf(_class(cl))?SQTrue:SQFalse; } @@ -872,7 +874,7 @@ rabbit::Result sq_newslot(rabbit::VirtualMachine* v, int64_t idx, rabbit::Bool b { sq_aux_paramscheck(v, 3); rabbit::ObjectPtr &self = stack_get(v, idx); - if(sq_type(self) == rabbit::OT_TABLE || sq_type(self) == OT_CLASS) { + if(sq_type(self) == rabbit::OT_TABLE || sq_type(self) == rabbit::OT_CLASS) { rabbit::ObjectPtr &key = v->getUp(-2); if(sq_type(key) == rabbit::OT_NULL) return sq_throwerror(v, _SC("null is not a valid key")); v->newSlot(self, key, v->getUp(-1),bstatic?true:false); @@ -1563,9 +1565,9 @@ rabbit::Result sq_getdefaultdelegate(rabbit::VirtualMachine* v,rabbit::ObjectTyp case rabbit::OT_TABLE: v->push(ss->_table_default_delegate); break; case rabbit::OT_ARRAY: v->push(ss->_array_default_delegate); break; case rabbit::OT_STRING: v->push(ss->_string_default_delegate); break; - case rabbit::OT_INTEGER: case OT_FLOAT: v->push(ss->_number_default_delegate); break; + case rabbit::OT_INTEGER: case rabbit::OT_FLOAT: v->push(ss->_number_default_delegate); break; case rabbit::OT_GENERATOR: v->push(ss->_generator_default_delegate); break; - case rabbit::OT_CLOSURE: case OT_NATIVECLOSURE: v->push(ss->_closure_default_delegate); break; + case rabbit::OT_CLOSURE: case rabbit::OT_NATIVECLOSURE: v->push(ss->_closure_default_delegate); break; case rabbit::OT_THREAD: v->push(ss->_thread_default_delegate); break; case rabbit::OT_CLASS: v->push(ss->_class_default_delegate); break; case rabbit::OT_INSTANCE: v->push(ss->_instance_default_delegate); break; diff --git a/rabbit/sqbaselib.cpp b/rabbit/sqbaselib.cpp index 6a0f548..0e85904 100644 --- a/rabbit/sqbaselib.cpp +++ b/rabbit/sqbaselib.cpp @@ -16,6 +16,7 @@ #include #include #include +#include static bool str2num(const rabbit::Char *s,rabbit::ObjectPtr &res,int64_t base) { @@ -189,7 +190,7 @@ static int64_t base_print(rabbit::VirtualMachine* v) if(SQ_SUCCEEDED(sq_tostring(v,2))) { if(SQ_SUCCEEDED(sq_getstring(v,-1,&str))) { - if(_get_shared_state(v)->_printfunc) _ss(v)->_printfunc(v,_SC("%s"),str); + if(_get_shared_state(v)->_printfunc) _get_shared_state(v)->_printfunc(v,_SC("%s"),str); return 0; } } @@ -202,7 +203,7 @@ static int64_t base_error(rabbit::VirtualMachine* v) if(SQ_SUCCEEDED(sq_tostring(v,2))) { if(SQ_SUCCEEDED(sq_getstring(v,-1,&str))) { - if(_get_shared_state(v)->_errorfunc) _ss(v)->_errorfunc(v,_SC("%s"),str); + if(_get_shared_state(v)->_errorfunc) _get_shared_state(v)->_errorfunc(v,_SC("%s"),str); return 0; } } @@ -343,7 +344,8 @@ static int64_t default_delegate_tofloat(rabbit::VirtualMachine* v) }} return sq_throwerror(v, _SC("cannot convert the string")); break; - case rabbit::OT_INTEGER:case OT_FLOAT: + case rabbit::OT_INTEGER: + case rabbit::OT_FLOAT: v->push(rabbit::ObjectPtr(tofloat(o))); break; case rabbit::OT_BOOL: @@ -372,7 +374,8 @@ static int64_t default_delegate_tointeger(rabbit::VirtualMachine* v) }} return sq_throwerror(v, _SC("cannot convert the string")); break; - case rabbit::OT_INTEGER:case OT_FLOAT: + case rabbit::OT_INTEGER: + case rabbit::OT_FLOAT: v->push(rabbit::ObjectPtr(tointeger(o))); break; case rabbit::OT_BOOL: diff --git a/rabbit/sqclass.cpp b/rabbit/sqclass.cpp index fb7cc4f..d1f05ea 100644 --- a/rabbit/sqclass.cpp +++ b/rabbit/sqclass.cpp @@ -11,7 +11,7 @@ #include #include #include - +#include SQClass::SQClass(SQSharedState *ss,SQClass *base) @@ -27,7 +27,7 @@ SQClass::SQClass(SQSharedState *ss,SQClass *base) _udsize = _base->_udsize; _defaultvalues = base->_defaultvalues; _methods = base->_methods; - _COPY_VECTOR(_metamethods,base->_metamethods,MT_LAST); + _COPY_VECTOR(_metamethods,base->_metamethods, rabbit::MT_LAST); __ObjaddRef(_base); } _members = base?base->_members->clone() : SQTable::create(ss,0); @@ -38,7 +38,7 @@ void SQClass::finalize() { _attributes.Null(); _NULL_SQOBJECT_VECTOR(_defaultvalues,_defaultvalues.size()); _methods.resize(0); - _NULL_SQOBJECT_VECTOR(_metamethods,MT_LAST); + _NULL_SQOBJECT_VECTOR(_metamethods, rabbit::MT_LAST); __Objrelease(_members); if(_base) { __Objrelease(_base); @@ -53,7 +53,9 @@ SQClass::~SQClass() bool SQClass::newSlot(SQSharedState *ss,const rabbit::ObjectPtr &key,const rabbit::ObjectPtr &val,bool bstatic) { rabbit::ObjectPtr temp; - bool belongs_to_static_table = sq_type(val) == rabbit::OT_CLOSURE || sq_type(val) == OT_NATIVECLOSURE || bstatic; + bool belongs_to_static_table = sq_type(val) == rabbit::OT_CLOSURE + || sq_type(val) == rabbit::OT_NATIVECLOSURE + || bstatic; if(_locked && !belongs_to_static_table) return false; //the class already has an instance so cannot be modified if(_members->get(key,temp) && _isfield(temp)) //overrides the default value @@ -63,8 +65,9 @@ bool SQClass::newSlot(SQSharedState *ss,const rabbit::ObjectPtr &key,const rabbi } if(belongs_to_static_table) { int64_t mmidx; - if((sq_type(val) == rabbit::OT_CLOSURE || sq_type(val) == OT_NATIVECLOSURE) && - (mmidx = ss->getMetaMethodIdxByName(key)) != -1) { + if( ( sq_type(val) == rabbit::OT_CLOSURE + || sq_type(val) == rabbit::OT_NATIVECLOSURE ) + && (mmidx = ss->getMetaMethodIdxByName(key)) != -1) { _metamethods[mmidx] = val; } else { diff --git a/rabbit/sqclass.hpp b/rabbit/sqclass.hpp index b9d212b..befe9c9 100644 --- a/rabbit/sqclass.hpp +++ b/rabbit/sqclass.hpp @@ -76,7 +76,7 @@ public: SQClass *_base; SQClassMemberVec _defaultvalues; SQClassMemberVec _methods; - rabbit::ObjectPtr _metamethods[MT_LAST]; + rabbit::ObjectPtr _metamethods[rabbit::MT_LAST]; rabbit::ObjectPtr _attributes; rabbit::UserPointer _typetag; SQRELEASEHOOK _hook; diff --git a/rabbit/sqclosure.hpp b/rabbit/sqclosure.hpp index fd7ffe1..81662bc 100644 --- a/rabbit/sqclosure.hpp +++ b/rabbit/sqclosure.hpp @@ -36,8 +36,8 @@ public: void release(){ SQFunctionProto *f = _function; int64_t size = _CALC_CLOSURE_SIZE(f); - _DESTRUCT_VECTOR(rabbit::ObjectPtr,f->_noutervalues,_outervalues); - _DESTRUCT_VECTOR(rabbit::ObjectPtr,f->_ndefaultparams,_defaultparams); + _DESTRUCT_VECTOR(ObjectPtr,f->_noutervalues,_outervalues); + _DESTRUCT_VECTOR(ObjectPtr,f->_ndefaultparams,_defaultparams); __Objrelease(_function); this->~SQClosure(); sq_vm_free(this,size); @@ -177,7 +177,7 @@ public: } void release(){ int64_t size = _CALC_NATVIVECLOSURE_SIZE(_noutervalues); - _DESTRUCT_VECTOR(rabbit::ObjectPtr,_noutervalues,_outervalues); + _DESTRUCT_VECTOR(ObjectPtr,_noutervalues,_outervalues); this->~SQNativeClosure(); sq_free(this,size); } diff --git a/rabbit/sqdebug.cpp b/rabbit/sqdebug.cpp index c2104a9..3f662bc 100644 --- a/rabbit/sqdebug.cpp +++ b/rabbit/sqdebug.cpp @@ -12,6 +12,8 @@ #include #include #include +#include +#include rabbit::Result sq_getfunctioninfo(rabbit::VirtualMachine* v,int64_t level,rabbit::FunctionInfo *fi) { diff --git a/rabbit/sqfuncproto.hpp b/rabbit/sqfuncproto.hpp index 1b4af44..c47e7e8 100644 --- a/rabbit/sqfuncproto.hpp +++ b/rabbit/sqfuncproto.hpp @@ -105,9 +105,9 @@ public: return f; } void release(){ - _DESTRUCT_VECTOR(rabbit::ObjectPtr,_nliterals,_literals); - _DESTRUCT_VECTOR(rabbit::ObjectPtr,_nparameters,_parameters); - _DESTRUCT_VECTOR(rabbit::ObjectPtr,_nfunctions,_functions); + _DESTRUCT_VECTOR(ObjectPtr,_nliterals,_literals); + _DESTRUCT_VECTOR(ObjectPtr,_nparameters,_parameters); + _DESTRUCT_VECTOR(ObjectPtr,_nfunctions,_functions); _DESTRUCT_VECTOR(SQOuterVar,_noutervalues,_outervalues); //_DESTRUCT_VECTOR(SQLineInfo,_nlineinfos,_lineinfos); //not required are 2 integers _DESTRUCT_VECTOR(SQLocalVarInfo,_nlocalvarinfos,_localvarinfos); diff --git a/rabbit/sqobject.cpp b/rabbit/sqobject.cpp index 83201d0..7f57417 100644 --- a/rabbit/sqobject.cpp +++ b/rabbit/sqobject.cpp @@ -251,7 +251,7 @@ bool ReadObject(rabbit::VirtualMachine* v,rabbit::UserPointer up,SQREADFUNC read int64_t len; _CHECK_IO(SafeRead(v,read,up,&len,sizeof(int64_t))); _CHECK_IO(SafeRead(v,read,up,_get_shared_state(v)->getScratchPad(sq_rsl(len)),sq_rsl(len))); - o=SQString::create(_get_shared_state(v),_ss(v)->getScratchPad(-1),len); + o=SQString::create(_get_shared_state(v),_get_shared_state(v)->getScratchPad(-1),len); } break; case rabbit::OT_INTEGER:{ diff --git a/rabbit/sqstate.cpp b/rabbit/sqstate.cpp index e9ecf05..c915a77 100644 --- a/rabbit/sqstate.cpp +++ b/rabbit/sqstate.cpp @@ -102,7 +102,7 @@ void SQSharedState::init() sq_new(_metamethods,etk::Vector); sq_new(_systemstrings,etk::Vector); sq_new(_types,etk::Vector); - _metamethodsmap = SQTable::create(this,MT_LAST-1); + _metamethodsmap = SQTable::create(this,rabbit::MT_LAST-1); //adding type strings to avoid memory trashing //types names newsysstring(_SC("null")); @@ -183,10 +183,11 @@ SQSharedState::~SQSharedState() _weakref_default_delegate.Null(); _refs_table.finalize(); - sq_delete(_types,etk::Vector); - sq_delete(_systemstrings,etk::Vector); - sq_delete(_metamethods,etk::Vector); - sq_delete(_stringtable,SQStringTable); + using tmpType = etk::Vector; + sq_delete(_types, tmpType); + sq_delete(_systemstrings, tmpType); + sq_delete(_metamethods, tmpType); + sq_delete(_stringtable, SQStringTable); if(_scratchpad)SQ_FREE(_scratchpad,_scratchpadsize); } diff --git a/rabbit/sqstate.hpp b/rabbit/sqstate.hpp index 622c61e..63b1521 100644 --- a/rabbit/sqstate.hpp +++ b/rabbit/sqstate.hpp @@ -10,6 +10,7 @@ #include #include #include +#include struct SQString; struct SQTable; diff --git a/rabbit/sqtable.cpp b/rabbit/sqtable.cpp index da7be2a..b5bbb10 100644 --- a/rabbit/sqtable.cpp +++ b/rabbit/sqtable.cpp @@ -12,6 +12,8 @@ #include #include +#define MINPOWER2 4 + SQTable::SQTable(SQSharedState *ss,int64_t ninitialsize) { int64_t pow2size=MINPOWER2;