Fixed compiler warnings in squirrel (minor stuff, patch is submitted to upstream)
[supertux.git] / src / squirrel / squirrel / sqvm.h
index 89710ff..b9db817 100644 (file)
@@ -37,11 +37,11 @@ struct SQVM : public CHAINABLE_OBJ
        };
 
        struct CallInfo{
-               CallInfo() { _generator._type = OT_NULL;}
+               //CallInfo() { _generator._type = OT_NULL;}
                SQInstruction *_ip;
                SQObjectPtr *_literals;
-               SQObject _closure;
-               SQObject _generator;
+               SQObjectPtr _closure;
+               SQGenerator *_generator;
                SQInt32 _etraps;
                SQInt32 _prevstkbase;
                SQInt32 _prevtop;
@@ -118,7 +118,8 @@ public:
        void Finalize();
        void GrowCallStack() {
                SQInteger newsize = _alloccallsstacksize*2;
-               _callsstack = (CallInfo*)sq_realloc(_callsstack,_alloccallsstacksize*sizeof(CallInfo),newsize*sizeof(CallInfo));
+               _callstackdata.resize(newsize);
+               _callsstack = &_callstackdata[0];
                _alloccallsstacksize = newsize;
        }
        void Release(){ sq_delete(this,SQVM); } //does nothing
@@ -151,6 +152,7 @@ public:
        CallInfo* _callsstack;
        SQInteger _callsstacksize;
        SQInteger _alloccallsstacksize;
+       sqvector<CallInfo>  _callstackdata;
 
        ExceptionsTraps _etraps;
        CallInfo *ci;
@@ -173,8 +175,6 @@ struct AutoDec{
 };
 
 inline SQObjectPtr &stack_get(HSQUIRRELVM v,SQInteger idx){return ((idx>=0)?(v->GetAt(idx+v->_stackbase-1)):(v->GetUp(idx)));}
-const SQChar *GetTypeName(const SQObjectPtr &obj1);
-const SQChar *IdType2Name(SQObjectType type);
 
 #define _ss(_vm_) (_vm_)->_sharedstate
 
@@ -195,6 +195,7 @@ const SQChar *IdType2Name(SQObjectType type);
 
 #define POP_CALLINFO(v){ \
        v->_callsstacksize--; \
+       v->ci->_closure.Null(); \
        if(v->_callsstacksize)  \
                v->ci = &v->_callsstack[v->_callsstacksize-1] ; \
        else    \