Changeset - r25706:50b894f19d99
src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp
Show inline comments
 
@@ -14,13 +14,13 @@ void sqstd_printcallstack(HSQUIRRELVM v)
 
		SQStackInfos si;
 
		SQInteger i;
 
		SQBool b;
 
		SQFloat f;
 
		const SQChar *s;
 
		SQInteger level=1; //1 is to skip this function that is level 0
 
		const SQChar *name=0;
 
		const SQChar *name=nullptr;
 
		SQInteger seq=0;
 
		pf(v,"\nCALLSTACK\n");
 
		while(SQ_SUCCEEDED(sq_stackinfos(v,level,&si)))
 
		{
 
			const SQChar *fn="unknown";
 
			const SQChar *src="unknown";
 
@@ -113,13 +113,13 @@ void sqstd_printcallstack(HSQUIRRELVM v)
 
}
 

	
 
static SQInteger _sqstd_aux_printerror(HSQUIRRELVM v)
 
{
 
	SQPRINTFUNCTION pf = sq_getprintfunc(v);
 
	if(pf) {
 
		const SQChar *sErr = 0;
 
		const SQChar *sErr = nullptr;
 
		if(sq_gettop(v)>=1) {
 
			if(SQ_SUCCEEDED(sq_getstring(v,2,&sErr)))	{
 
				pf(v,"\nAN ERROR HAS OCCURRED [%s]\n",sErr);
 
			}
 
			else{
 
				pf(v,"\nAN ERROR HAS OCCURRED [unknown]\n");
src/3rdparty/squirrel/sqstdlib/sqstdmath.cpp
Show inline comments
 
@@ -85,23 +85,23 @@ static SQRegFunction mathlib_funcs[] = {
 
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
 
	_DECL_FUNC(srand,2,".n"),
 
	_DECL_FUNC(rand,1,NULL),
 
#endif /* EXPORT_DEFAULT_SQUIRREL_FUNCTIONS */
 
	_DECL_FUNC(fabs,2,".n"),
 
	_DECL_FUNC(abs,2,".n"),
 
	{0,0,0,0},
 
	{nullptr,nullptr,0,nullptr},
 
};
 

	
 
#ifndef M_PI
 
#define M_PI (3.14159265358979323846)
 
#endif
 

	
 
SQRESULT sqstd_register_mathlib(HSQUIRRELVM v)
 
{
 
	SQInteger i=0;
 
	while(mathlib_funcs[i].name!=0)	{
 
	while(mathlib_funcs[i].name!=nullptr)	{
 
		sq_pushstring(v,mathlib_funcs[i].name,-1);
 
		sq_newclosure(v,mathlib_funcs[i].f,0);
 
		sq_setparamscheck(v,mathlib_funcs[i].nparamscheck,mathlib_funcs[i].typemask);
 
		sq_setnativeclosurename(v,-1,mathlib_funcs[i].name);
 
		sq_createslot(v,-3);
 
		i++;
src/3rdparty/squirrel/squirrel/sqapi.cpp
Show inline comments
 
@@ -57,17 +57,17 @@ HSQUIRRELVM sq_open(SQInteger initialsta
 
	SQSharedState *ss;
 
	SQVM *v;
 
	sq_new(ss, SQSharedState);
 
	v = (SQVM *)SQ_MALLOC(sizeof(SQVM));
 
	new (v) SQVM(ss);
 
	ss->_root_vm = v;
 
	if(v->Init(NULL, initialstacksize)) {
 
	if(v->Init(nullptr, initialstacksize)) {
 
		return v;
 
	} else {
 
		sq_delete(v, SQVM);
 
		return NULL;
 
		return nullptr;
 
	}
 
	return v;
 
}
 

	
 
HSQUIRRELVM sq_newthread(HSQUIRRELVM friendvm, SQInteger initialstacksize)
 
{
 
@@ -80,13 +80,13 @@ HSQUIRRELVM sq_newthread(HSQUIRRELVM fri
 

	
 
	if(v->Init(friendvm, initialstacksize)) {
 
		friendvm->Push(v);
 
		return v;
 
	} else {
 
		sq_delete(v, SQVM);
 
		return NULL;
 
		return nullptr;
 
	}
 
}
 

	
 
SQInteger sq_getvmstate(HSQUIRRELVM v)
 
{
 
	if(v->_suspended)
 
@@ -175,13 +175,13 @@ SQBool sq_release(HSQUIRRELVM v,HSQOBJEC
 

	
 
const SQChar *sq_objtostring(HSQOBJECT *o)
 
{
 
	if(sq_type(*o) == OT_STRING) {
 
		return _stringval(*o);
 
	}
 
	return NULL;
 
	return nullptr;
 
}
 

	
 
SQInteger sq_objtointeger(HSQOBJECT *o)
 
{
 
	if(sq_isnumeric(*o)) {
 
		return tointeger(*o);
 
@@ -253,13 +253,13 @@ void sq_newarray(HSQUIRRELVM v,SQInteger
 
{
 
	v->Push(SQArray::Create(_ss(v), size));
 
}
 

	
 
SQRESULT sq_newclass(HSQUIRRELVM v,SQBool hasbase)
 
{
 
	SQClass *baseclass = NULL;
 
	SQClass *baseclass = nullptr;
 
	if(hasbase) {
 
		SQObjectPtr &base = stack_get(v,-1);
 
		if(type(base) != OT_CLASS)
 
			return sq_throwerror(v,"invalid base type");
 
		baseclass = _class(base);
 
	}
 
@@ -552,21 +552,21 @@ SQRESULT sq_getbool(HSQUIRRELVM v,SQInte
 
	}
 
	return SQ_ERROR;
 
}
 

	
 
SQRESULT sq_getstring(HSQUIRRELVM v,SQInteger idx,const SQChar **c)
 
{
 
	SQObjectPtr *o = NULL;
 
	SQObjectPtr *o = nullptr;
 
	_GETSAFE_OBJ(v, idx, OT_STRING,o);
 
	*c = _stringval(*o);
 
	return SQ_OK;
 
}
 

	
 
SQRESULT sq_getthread(HSQUIRRELVM v,SQInteger idx,HSQUIRRELVM *thread)
 
{
 
	SQObjectPtr *o = NULL;
 
	SQObjectPtr *o = nullptr;
 
	_GETSAFE_OBJ(v, idx, OT_THREAD,o);
 
	*thread = _thread(*o);
 
	return SQ_OK;
 
}
 

	
 
SQRESULT sq_clone(HSQUIRRELVM v,SQInteger idx)
 
@@ -595,13 +595,13 @@ SQInteger sq_getsize(HSQUIRRELVM v, SQIn
 
		return sq_aux_invalidtype(v, type);
 
	}
 
}
 

	
 
SQRESULT sq_getuserdata(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p,SQUserPointer *typetag)
 
{
 
	SQObjectPtr *o = NULL;
 
	SQObjectPtr *o = nullptr;
 
	_GETSAFE_OBJ(v, idx, OT_USERDATA,o);
 
	(*p) = _userdataval(*o);
 
	if(typetag) *typetag = _userdata(*o)->_typetag;
 
	return SQ_OK;
 
}
 

	
 
@@ -634,13 +634,13 @@ SQRESULT sq_gettypetag(HSQUIRRELVM v,SQI
 
		return sq_throwerror(v,"invalid object type");
 
	return SQ_OK;
 
}
 

	
 
SQRESULT sq_getuserpointer(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p)
 
{
 
	SQObjectPtr *o = NULL;
 
	SQObjectPtr *o = nullptr;
 
	_GETSAFE_OBJ(v, idx, OT_USERPOINTER,o);
 
	(*p) = _userpointer(*o);
 
	return SQ_OK;
 
}
 

	
 
SQRESULT sq_setinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer p)
 
@@ -663,19 +663,19 @@ SQRESULT sq_setclassudsize(HSQUIRRELVM v
 

	
 
SQRESULT sq_getinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p,SQUserPointer typetag)
 
{
 
	SQObjectPtr &o = stack_get(v,idx);
 
	if(type(o) != OT_INSTANCE) return sq_throwerror(v,"the object is not a class instance");
 
	(*p) = _instance(o)->_userpointer;
 
	if(typetag != 0) {
 
	if(typetag != nullptr) {
 
		SQClass *cl = _instance(o)->_class;
 
		do{
 
			if(cl->_typetag == typetag)
 
				return SQ_OK;
 
			cl = cl->_base;
 
		}while(cl != NULL);
 
		}while(cl != nullptr);
 
		return sq_throwerror(v,"invalid type tag");
 
	}
 
	return SQ_OK;
 
}
 

	
 
SQInteger sq_gettop(HSQUIRRELVM v)
 
@@ -798,20 +798,20 @@ SQRESULT sq_setdelegate(HSQUIRRELVM v,SQ
 
	switch(type) {
 
	case OT_TABLE:
 
		if(type(mt) == OT_TABLE) {
 
			if(!_table(self)->SetDelegate(_table(mt))) return sq_throwerror(v, "delagate cycle");
 
			v->Pop();}
 
		else if(type(mt)==OT_NULL) {
 
			_table(self)->SetDelegate(NULL); v->Pop(); }
 
			_table(self)->SetDelegate(nullptr); v->Pop(); }
 
		else return sq_aux_invalidtype(v,type);
 
		break;
 
	case OT_USERDATA:
 
		if(type(mt)==OT_TABLE) {
 
			_userdata(self)->SetDelegate(_table(mt)); v->Pop(); }
 
		else if(type(mt)==OT_NULL) {
 
			_userdata(self)->SetDelegate(NULL); v->Pop(); }
 
			_userdata(self)->SetDelegate(nullptr); v->Pop(); }
 
		else return sq_aux_invalidtype(v, type);
 
		break;
 
	default:
 
			return sq_aux_invalidtype(v, type);
 
		break;
 
	}
 
@@ -906,33 +906,33 @@ const SQChar *sq_getlocal(HSQUIRRELVM v,
 
		for(SQUnsignedInteger i=0;i<level;i++){
 
			SQVM::CallInfo &ci=v->_callsstack[(cstksize-i)-1];
 
			stackbase-=ci._prevstkbase;
 
		}
 
		SQVM::CallInfo &ci=v->_callsstack[lvl];
 
		if(type(ci._closure)!=OT_CLOSURE)
 
			return NULL;
 
			return nullptr;
 
		SQClosure *c=_closure(ci._closure);
 
		SQFunctionProto *func=_funcproto(c->_function);
 
		if(func->_noutervalues > (SQInteger)idx) {
 
			v->Push(c->_outervalues[idx]);
 
			return _stringval(func->_outervalues[idx]._name);
 
		}
 
		idx -= func->_noutervalues;
 
		return func->GetLocal(v,stackbase,idx,(SQInteger)(ci._ip-func->_instructions)-1);
 
	}
 
	return NULL;
 
	return nullptr;
 
}
 

	
 
void sq_pushobject(HSQUIRRELVM v,HSQOBJECT obj)
 
{
 
	v->Push(SQObjectPtr(obj));
 
}
 

	
 
void sq_resetobject(HSQOBJECT *po)
 
{
 
	po->_unVal.pUserPointer=NULL;po->_type=OT_NULL;
 
	po->_unVal.pUserPointer=nullptr;po->_type=OT_NULL;
 
}
 

	
 
SQRESULT sq_throwerror(HSQUIRRELVM v,const SQChar *err)
 
{
 
	v->_lasterror=SQString::Create(_ss(v),err);
 
	return -1;
 
@@ -1048,13 +1048,13 @@ void sq_setcompilererrorhandler(HSQUIRRE
 
{
 
	_ss(v)->_compilererrorhandler = f;
 
}
 

	
 
SQRESULT sq_writeclosure(HSQUIRRELVM v,SQWRITEFUNC w,SQUserPointer up)
 
{
 
	SQObjectPtr *o = NULL;
 
	SQObjectPtr *o = nullptr;
 
	_GETSAFE_OBJ(v, -1, OT_CLOSURE,o);
 
	unsigned short tag = SQ_BYTECODE_STREAM_TAG;
 
	if(w(up,&tag,2) != 2)
 
		return sq_throwerror(v,"io error");
 
	if(!_closure(*o)->Save(v,up,w))
 
		return SQ_ERROR;
 
@@ -1090,13 +1090,13 @@ SQInteger sq_collectgarbage(HSQUIRRELVM 
 
#endif
 
}
 

	
 
const SQChar *sq_getfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval)
 
{
 
	SQObjectPtr &self = stack_get(v,idx);
 
	const SQChar *name = NULL;
 
	const SQChar *name = nullptr;
 
	if(type(self) == OT_CLOSURE) {
 
		if(_closure(self)->_outervalues.size()>nval) {
 
			v->Push(_closure(self)->_outervalues[nval]);
 
			SQFunctionProto *fp = _funcproto(_closure(self)->_function);
 
			SQOuterVar &ov = fp->_outervalues[nval];
 
			name = _stringval(ov._name);
 
@@ -1128,13 +1128,13 @@ SQRESULT sq_setfreevariable(HSQUIRRELVM 
 
	v->Pop(1);
 
	return SQ_OK;
 
}
 

	
 
SQRESULT sq_setattributes(HSQUIRRELVM v,SQInteger idx)
 
{
 
	SQObjectPtr *o = NULL;
 
	SQObjectPtr *o = nullptr;
 
	_GETSAFE_OBJ(v, idx, OT_CLASS,o);
 
	SQObjectPtr &key = stack_get(v,-2);
 
	SQObjectPtr &val = stack_get(v,-1);
 
	SQObjectPtr attrs;
 
	if(type(key) == OT_NULL) {
 
		attrs = _class(*o)->_attributes;
 
@@ -1150,13 +1150,13 @@ SQRESULT sq_setattributes(HSQUIRRELVM v,
 
	}
 
	return sq_throwerror(v,"wrong index");
 
}
 

	
 
SQRESULT sq_getattributes(HSQUIRRELVM v,SQInteger idx)
 
{
 
	SQObjectPtr *o = NULL;
 
	SQObjectPtr *o = nullptr;
 
	_GETSAFE_OBJ(v, idx, OT_CLASS,o);
 
	SQObjectPtr &key = stack_get(v,-1);
 
	SQObjectPtr attrs;
 
	if(type(key) == OT_NULL) {
 
		attrs = _class(*o)->_attributes;
 
		v->Pop();
 
@@ -1170,32 +1170,32 @@ SQRESULT sq_getattributes(HSQUIRRELVM v,
 
	}
 
	return sq_throwerror(v,"wrong index");
 
}
 

	
 
SQRESULT sq_getbase(HSQUIRRELVM v,SQInteger idx)
 
{
 
	SQObjectPtr *o = NULL;
 
	SQObjectPtr *o = nullptr;
 
	_GETSAFE_OBJ(v, idx, OT_CLASS,o);
 
	if(_class(*o)->_base)
 
		v->Push(SQObjectPtr(_class(*o)->_base));
 
	else
 
		v->Push(_null_);
 
	return SQ_OK;
 
}
 

	
 
SQRESULT sq_getclass(HSQUIRRELVM v,SQInteger idx)
 
{
 
	SQObjectPtr *o = NULL;
 
	SQObjectPtr *o = nullptr;
 
	_GETSAFE_OBJ(v, idx, OT_INSTANCE,o);
 
	v->Push(SQObjectPtr(_instance(*o)->_class));
 
	return SQ_OK;
 
}
 

	
 
SQRESULT sq_createinstance(HSQUIRRELVM v,SQInteger idx)
 
{
 
	SQObjectPtr *o = NULL;
 
	SQObjectPtr *o = nullptr;
 
	_GETSAFE_OBJ(v, idx, OT_CLASS,o);
 
	v->Push(_class(*o)->CreateInstance());
 
	return SQ_OK;
 
}
 

	
 
void sq_weakref(HSQUIRRELVM v,SQInteger idx)
src/3rdparty/squirrel/squirrel/sqbaselib.cpp
Show inline comments
 
@@ -245,35 +245,35 @@ static SQRegFunction base_funcs[]={
 
	{"getstackinfos",base_getstackinfos,2, ".n"},
 
	{"getroottable",base_getroottable,1, NULL},
 
	{"setroottable",base_setroottable,2, NULL},
 
	{"getconsttable",base_getconsttable,1, NULL},
 
	{"setconsttable",base_setconsttable,2, NULL},
 
#endif
 
	{"assert",base_assert,2, NULL},
 
	{"print",base_print,2, NULL},
 
	{"assert",base_assert,2, nullptr},
 
	{"print",base_print,2, nullptr},
 
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
 
	{"compilestring",base_compilestring,-2, ".ss"},
 
	{"newthread",base_newthread,2, ".c"},
 
	{"suspend",base_suspend,-1, NULL},
 
#endif
 
	{"array",base_array,-2, ".n"},
 
	{"type",base_type,2, NULL},
 
	{"type",base_type,2, nullptr},
 
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
 
	{"dummy",base_dummy,0,NULL},
 
#ifndef NO_GARBAGE_COLLECTOR
 
	{"collectgarbage",base_collectgarbage,1, "t"},
 
#endif
 
#endif
 
	{0,0,0,0}
 
	{nullptr,nullptr,0,nullptr}
 
};
 

	
 
void sq_base_register(HSQUIRRELVM v)
 
{
 
	SQInteger i=0;
 
	sq_pushroottable(v);
 
	while(base_funcs[i].name!=0) {
 
	while(base_funcs[i].name!=nullptr) {
 
		sq_pushstring(v,base_funcs[i].name,-1);
 
		sq_newclosure(v,base_funcs[i].f,0);
 
		sq_setnativeclosurename(v,-1,base_funcs[i].name);
 
		sq_setparamscheck(v,base_funcs[i].nparamscheck,base_funcs[i].typemask);
 
		sq_createslot(v,-3);
 
		i++;
 
@@ -412,16 +412,16 @@ static SQInteger table_rawget(HSQUIRRELV
 
SQRegFunction SQSharedState::_table_default_delegate_funcz[]={
 
	{"len",default_delegate_len,1, "t"},
 
	{"rawget",table_rawget,2, "t"},
 
	{"rawset",table_rawset,3, "t"},
 
	{"rawdelete",table_rawdelete,2, "t"},
 
	{"rawin",container_rawexists,2, "t"},
 
	{"weakref",obj_delegate_weakref,1, NULL },
 
	{"weakref",obj_delegate_weakref,1, nullptr },
 
	{"tostring",default_delegate_tostring,1, "."},
 
	{"clear",obj_clear,1, "."},
 
	{0,0,0,0}
 
	{nullptr,nullptr,0,nullptr}
 
};
 

	
 
//ARRAY DEFAULT DELEGATE///////////////////////////////////////
 

	
 
static SQInteger array_append(HSQUIRRELVM v)
 
{
 
@@ -621,16 +621,16 @@ SQRegFunction SQSharedState::_array_defa
 
	{"insert",array_insert,3, "an"},
 
	{"remove",array_remove,2, "an"},
 
	{"resize",array_resize,-2, "an"},
 
	{"reverse",array_reverse,1, "a"},
 
	{"sort",array_sort,-1, "ac"},
 
	{"slice",array_slice,-1, "ann"},
 
	{"weakref",obj_delegate_weakref,1, NULL },
 
	{"weakref",obj_delegate_weakref,1, nullptr },
 
	{"tostring",default_delegate_tostring,1, "."},
 
	{"clear",obj_clear,1, "."},
 
	{0,0,0,0}
 
	{nullptr,nullptr,0,nullptr}
 
};
 

	
 
//STRING DEFAULT DELEGATE//////////////////////////
 
static SQInteger string_slice(HSQUIRRELVM v)
 
{
 
	SQInteger sidx,eidx;
 
@@ -684,24 +684,24 @@ SQRegFunction SQSharedState::_string_def
 
	{"tofloat",default_delegate_tofloat,1, "s"},
 
	{"tostring",default_delegate_tostring,1, "."},
 
	{"slice",string_slice,-1, " s n  n"},
 
	{"find",string_find,-2, "s s n "},
 
	{"tolower",string_tolower,1, "s"},
 
	{"toupper",string_toupper,1, "s"},
 
	{"weakref",obj_delegate_weakref,1, NULL },
 
	{0,0,0,0}
 
	{"weakref",obj_delegate_weakref,1, nullptr },
 
	{nullptr,nullptr,0,nullptr}
 
};
 

	
 
//INTEGER DEFAULT DELEGATE//////////////////////////
 
SQRegFunction SQSharedState::_number_default_delegate_funcz[]={
 
	{"tointeger",default_delegate_tointeger,1, "n|b"},
 
	{"tofloat",default_delegate_tofloat,1, "n|b"},
 
	{"tostring",default_delegate_tostring,1, "."},
 
	{"tochar",number_delegate_tochar,1, "n|b"},
 
	{"weakref",obj_delegate_weakref,1, NULL },
 
	{0,0,0,0}
 
	{"weakref",obj_delegate_weakref,1, nullptr },
 
	{nullptr,nullptr,0,nullptr}
 
};
 

	
 
//CLOSURE DEFAULT DELEGATE//////////////////////////
 
static SQInteger closure_pcall(HSQUIRRELVM v)
 
{
 
	return SQ_SUCCEEDED(sq_call(v,sq_gettop(v)-1,SQTrue,SQFalse))?1:SQ_ERROR;
 
@@ -779,17 +779,17 @@ static SQInteger closure_getinfos(HSQUIR
 

	
 
SQRegFunction SQSharedState::_closure_default_delegate_funcz[]={
 
	{"call",closure_call,-1, "c"},
 
	{"pcall",closure_pcall,-1, "c"},
 
	{"acall",closure_acall,2, "ca"},
 
	{"pacall",closure_pacall,2, "ca"},
 
	{"weakref",obj_delegate_weakref,1, NULL },
 
	{"weakref",obj_delegate_weakref,1, nullptr },
 
	{"tostring",default_delegate_tostring,1, "."},
 
	{"bindenv",closure_bindenv,2, "c x|y|t"},
 
	{"getinfos",closure_getinfos,1, "c"},
 
	{0,0,0,0}
 
	{nullptr,nullptr,0,nullptr}
 
};
 

	
 
//GENERATOR DEFAULT DELEGATE
 
static SQInteger generator_getstatus(HSQUIRRELVM v)
 
{
 
	SQObject &o=stack_get(v,1);
 
@@ -800,15 +800,15 @@ static SQInteger generator_getstatus(HSQ
 
	}
 
	return 1;
 
}
 

	
 
SQRegFunction SQSharedState::_generator_default_delegate_funcz[]={
 
	{"getstatus",generator_getstatus,1, "g"},
 
	{"weakref",obj_delegate_weakref,1, NULL },
 
	{"weakref",obj_delegate_weakref,1, nullptr },
 
	{"tostring",default_delegate_tostring,1, "."},
 
	{0,0,0,0}
 
	{nullptr,nullptr,0,nullptr}
 
};
 

	
 
//THREAD DEFAULT DELEGATE
 

	
 
static SQInteger thread_call(HSQUIRRELVM v)
 
{
 
@@ -886,15 +886,15 @@ static SQInteger thread_getstatus(HSQUIR
 
}
 

	
 
SQRegFunction SQSharedState::_thread_default_delegate_funcz[] = {
 
	{"call", thread_call, -1, "v"},
 
	{"wakeup", thread_wakeup, -1, "v"},
 
	{"getstatus", thread_getstatus, 1, "v"},
 
	{"weakref",obj_delegate_weakref,1, NULL },
 
	{"weakref",obj_delegate_weakref,1, nullptr },
 
	{"tostring",default_delegate_tostring,1, "."},
 
	{0,0,0,0},
 
	{nullptr,nullptr,0,nullptr},
 
};
 

	
 
static SQInteger class_getattributes(HSQUIRRELVM v)
 
{
 
	if(SQ_SUCCEEDED(sq_getattributes(v,-2)))
 
		return 1;
 
@@ -916,42 +916,42 @@ static SQInteger class_instance(HSQUIRRE
 
}
 

	
 
SQRegFunction SQSharedState::_class_default_delegate_funcz[] = {
 
	{"getattributes", class_getattributes, 2, "y."},
 
	{"setattributes", class_setattributes, 3, "y.."},
 
	{"rawin",container_rawexists,2, "y"},
 
	{"weakref",obj_delegate_weakref,1, NULL },
 
	{"weakref",obj_delegate_weakref,1, nullptr },
 
	{"tostring",default_delegate_tostring,1, "."},
 
	{"instance",class_instance,1, "y"},
 
	{0,0,0,0}
 
	{nullptr,nullptr,0,nullptr}
 
};
 

	
 
static SQInteger instance_getclass(HSQUIRRELVM v)
 
{
 
	if(SQ_SUCCEEDED(sq_getclass(v,1)))
 
		return 1;
 
	return SQ_ERROR;
 
}
 

	
 
SQRegFunction SQSharedState::_instance_default_delegate_funcz[] = {
 
	{"getclass", instance_getclass, 1, "x"},
 
	{"rawin",container_rawexists,2, "x"},
 
	{"weakref",obj_delegate_weakref,1, NULL },
 
	{"weakref",obj_delegate_weakref,1, nullptr },
 
	{"tostring",default_delegate_tostring,1, "."},
 
	{0,0,0,0}
 
	{nullptr,nullptr,0,nullptr}
 
};
 

	
 
static SQInteger weakref_ref(HSQUIRRELVM v)
 
{
 
	if(SQ_FAILED(sq_getweakrefval(v,1)))
 
		return SQ_ERROR;
 
	return 1;
 
}
 

	
 
SQRegFunction SQSharedState::_weakref_default_delegate_funcz[] = {
 
	{"ref",weakref_ref,1, "r"},
 
	{"weakref",obj_delegate_weakref,1, NULL },
 
	{"weakref",obj_delegate_weakref,1, nullptr },
 
	{"tostring",default_delegate_tostring,1, "."},
 
	{0,0,0,0}
 
	{nullptr,nullptr,0,nullptr}
 
};
 

	
 

	
src/3rdparty/squirrel/squirrel/sqclass.cpp
Show inline comments
 
@@ -12,14 +12,14 @@
 

	
 
#include "../../../safeguards.h"
 

	
 
SQClass::SQClass(SQSharedState *ss,SQClass *base)
 
{
 
	_base = base;
 
	_typetag = 0;
 
	_hook = NULL;
 
	_typetag = nullptr;
 
	_hook = nullptr;
 
	_udsize = 0;
 
	_metamethods.resize(MT_LAST); //size it to max size
 
	if(_base) {
 
		_defaultvalues.copy(base->_defaultvalues);
 
		_methods.copy(base->_methods);
 
		_metamethods.copy(base->_metamethods);
 
@@ -136,14 +136,14 @@ bool SQClass::GetAttributes(const SQObje
 
	return false;
 
}
 

	
 
///////////////////////////////////////////////////////////////////////
 
void SQInstance::Init(SQSharedState *ss)
 
{
 
	_userpointer = NULL;
 
	_hook = NULL;
 
	_userpointer = nullptr;
 
	_hook = nullptr;
 
	__ObjAddRef(_class);
 
	_delegate = _class->_members;
 
	INIT_CHAIN();
 
	ADD_TO_CHAIN(&_sharedstate->_gc_chain, this);
 
}
 

	
 
@@ -193,13 +193,13 @@ bool SQInstance::GetMetaMethod(SQVM *v,S
 
	return false;
 
}
 

	
 
bool SQInstance::InstanceOf(SQClass *trg)
 
{
 
	SQClass *parent = _class;
 
	while(parent != NULL) {
 
	while(parent != nullptr) {
 
		if(parent == trg)
 
			return true;
 
		parent = parent->_base;
 
	}
 
	return false;
 
}
src/3rdparty/squirrel/squirrel/sqclosure.h
Show inline comments
 
@@ -42,13 +42,13 @@ public:
 
};
 
//////////////////////////////////////////////
 
struct SQGenerator : public CHAINABLE_OBJ
 
{
 
	enum SQGeneratorState{eRunning,eSuspended,eDead};
 
private:
 
	SQGenerator(SQSharedState *ss,SQClosure *closure){_closure=closure;_state=eRunning;_ci._generator=NULL;INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this);}
 
	SQGenerator(SQSharedState *ss,SQClosure *closure){_closure=closure;_state=eRunning;_ci._generator=nullptr;INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this);}
 
public:
 
	static SQGenerator *Create(SQSharedState *ss,SQClosure *closure){
 
		SQGenerator *nc=(SQGenerator*)SQ_MALLOC(sizeof(SQGenerator));
 
		new (nc) SQGenerator(ss,closure);
 
		return nc;
 
	}
src/3rdparty/squirrel/squirrel/sqcompiler.cpp
Show inline comments
 
@@ -54,13 +54,13 @@ typedef sqvector<ExpState> ExpStateVec;
 
					if(__nbreaks__>0)ResolveBreaks(_fs,__nbreaks__); \
 
					_fs->_breaktargets.pop_back();_fs->_continuetargets.pop_back();}
 

	
 
class SQCompiler
 
{
 
public:
 
	SQCompiler(SQVM *v, SQLEXREADFUNC rg, SQUserPointer up, const SQChar* sourcename, bool raiseerror, bool lineinfo) : _token(0), _fs(NULL), _lex(_ss(v), rg, up, ThrowError, this), _debugline(0), _debugop(0)
 
	SQCompiler(SQVM *v, SQLEXREADFUNC rg, SQUserPointer up, const SQChar* sourcename, bool raiseerror, bool lineinfo) : _token(0), _fs(nullptr), _lex(_ss(v), rg, up, ThrowError, this), _debugline(0), _debugop(0)
 
	{
 
		_vm=v;
 
		_sourcename = SQString::Create(_ss(v), sourcename);
 
		_lineinfo = lineinfo;_raiseerror = raiseerror;
 
	}
 
	NORETURN static void ThrowError(void *ud, const SQChar *s) {
 
@@ -161,13 +161,13 @@ public:
 
	}
 
	bool Compile(SQObjectPtr &o)
 
	{
 
		_debugline = 1;
 
		_debugop = 0;
 

	
 
		SQFuncState funcstate(_ss(_vm), NULL,ThrowError,this);
 
		SQFuncState funcstate(_ss(_vm), nullptr,ThrowError,this);
 
		funcstate._name = SQString::Create(_ss(_vm), "main");
 
		_fs = &funcstate;
 
		_fs->AddParameter(_fs->CreateString("this"));
 
		_fs->_sourcename = _sourcename;
 
		SQInteger stacksize = _fs->GetStackSize();
 
		try {
src/3rdparty/squirrel/squirrel/sqlexer.cpp
Show inline comments
 
@@ -84,13 +84,13 @@ SQLexer::SQLexer(SQSharedState *ss, SQLE
 
	_up = up;
 
	_lasttokenline = _currentline = 1;
 
	_currentcolumn = 0;
 
	_prevtoken = -1;
 
	_curtoken = -1;
 

	
 
	_svalue = NULL;
 
	_svalue = nullptr;
 
	_nvalue = 0;
 
	_fvalue = 0;
 

	
 
	Next();
 
}
 

	
 
@@ -116,13 +116,13 @@ const SQChar *SQLexer::Tok2Str(SQInteger
 
	SQInteger nitr;
 
	while((nitr = _keywords->Next(false,itr, key, val)) != -1) {
 
		itr = (SQInteger)nitr;
 
		if(((SQInteger)_integer(val)) == tok)
 
			return _stringval(key);
 
	}
 
	return NULL;
 
	return nullptr;
 
}
 

	
 
void SQLexer::LexBlockComment()
 
{
 
	bool done = false;
 
	while(!done) {
src/3rdparty/squirrel/squirrel/sqobject.cpp
Show inline comments
 
@@ -38,13 +38,13 @@ const SQChar *IdType2Name(SQObjectType t
 
	case _RT_THREAD: return "thread";
 
	case _RT_FUNCPROTO: return "function";
 
	case _RT_CLASS: return "class";
 
	case _RT_INSTANCE: return "instance";
 
	case _RT_WEAKREF: return "weakref";
 
	default:
 
		return NULL;
 
		return nullptr;
 
	}
 
}
 

	
 
const SQChar *GetTypeName(const SQObjectPtr &obj1)
 
{
 
	return IdType2Name(type(obj1));
 
@@ -98,19 +98,19 @@ SQWeakRef *SQRefCounted::GetWeakRef(SQOb
 
}
 

	
 
SQRefCounted::~SQRefCounted()
 
{
 
	if(_weakref) {
 
		_weakref->_obj._type = OT_NULL;
 
		_weakref->_obj._unVal.pRefCounted = NULL;
 
		_weakref->_obj._unVal.pRefCounted = nullptr;
 
	}
 
}
 

	
 
void SQWeakRef::Release() {
 
	if(ISREFCOUNTED(_obj._type)) {
 
		_obj._unVal.pRefCounted->_weakref = NULL;
 
		_obj._unVal.pRefCounted->_weakref = nullptr;
 
	}
 
	sq_delete(this,SQWeakRef);
 
}
 

	
 
bool SQDelegable::GetMetaMethod(SQVM *v,SQMetaMethod mm,SQObjectPtr &res) {
 
	if(_delegate) {
 
@@ -146,13 +146,13 @@ bool SQGenerator::Yield(SQVM *v)
 
	}
 
	SQInteger nvargs = v->ci->_vargs.size;
 
	SQInteger vargsbase = v->ci->_vargs.base;
 
	for(SQInteger j = nvargs - 1; j >= 0; j--) {
 
		_vargsstack.push_back(v->_vargsstack[vargsbase+j]);
 
	}
 
	_ci._generator=NULL;
 
	_ci._generator=nullptr;
 
	for(SQInteger i=0;i<_ci._etraps;i++) {
 
		_etraps.push_back(v->_etraps.top());
 
		v->_etraps.pop_back();
 
	}
 
	_state=eSuspended;
 
	return true;
 
@@ -201,13 +201,13 @@ void SQArray::Extend(const SQArray *a){
 
			Append(a->_values[i]);
 
}
 

	
 
const SQChar* SQFunctionProto::GetLocal(SQVM *vm,SQUnsignedInteger stackbase,SQUnsignedInteger nseq,SQUnsignedInteger nop)
 
{
 
	SQUnsignedInteger nvars=_nlocalvarinfos;
 
	const SQChar *res=NULL;
 
	const SQChar *res=nullptr;
 
	if(nvars>=nseq){
 
		for(SQUnsignedInteger i=0;i<nvars;i++){
 
			if(_localvarinfos[i]._start_op<=nop && _localvarinfos[i]._end_op>=nop)
 
			{
 
				if(nseq==0){
 
					vm->Push(vm->_stack[stackbase+_localvarinfos[i]._pos]);
src/3rdparty/squirrel/squirrel/sqobject.h
Show inline comments
 
@@ -53,13 +53,13 @@ enum SQMetaMethod{
 
#define MM_INHERITED "_inherited"
 

	
 
#define MINPOWER2 4
 

	
 
struct SQRefCounted
 
{
 
	SQRefCounted() { _uiRef = 0; _weakref = NULL; }
 
	SQRefCounted() { _uiRef = 0; _weakref = nullptr; }
 
	virtual ~SQRefCounted();
 
	SQWeakRef *GetWeakRef(SQObjectType type);
 
	SQUnsignedInteger _uiRef;
 
	struct SQWeakRef *_weakref;
 
	virtual void Release()=0;
 
};
 
@@ -131,13 +131,13 @@ struct SQObjectPtr;
 
struct SQObjectPtr : public SQObject
 
{
 
	SQObjectPtr()
 
	{
 
		SQ_OBJECT_RAWINIT()
 
		_type=OT_NULL;
 
		_unVal.pUserPointer=NULL;
 
		_unVal.pUserPointer=nullptr;
 
	}
 
	SQObjectPtr(const SQObjectPtr &o)
 
	{
 
		SQ_OBJECT_RAWINIT()
 
		_type=o._type;
 
		_unVal=o._unVal;
 
@@ -278,13 +278,13 @@ struct SQObjectPtr : public SQObject
 
	{
 
		SQObjectType tOldType;
 
		SQObjectValue unOldVal;
 
		tOldType = _type;
 
		unOldVal = _unVal;
 
		_type = OT_NULL;
 
		_unVal.pUserPointer = NULL;
 
		_unVal.pUserPointer = nullptr;
 
		__Release(tOldType,unOldVal);
 
	}
 
	inline SQObjectPtr& operator=(SQInteger i)
 
	{
 
		__Release(_type,_unVal);
 
		SQ_OBJECT_RAWINIT()
src/3rdparty/squirrel/squirrel/sqstate.cpp
Show inline comments
 
@@ -76,35 +76,35 @@ bool CompileTypemask(SQIntVec &res,const
 
}
 

	
 
SQTable *CreateDefaultDelegate(SQSharedState *ss,SQRegFunction *funcz)
 
{
 
	SQInteger i=0;
 
	SQTable *t=SQTable::Create(ss,0);
 
	while(funcz[i].name!=0){
 
	while(funcz[i].name!=nullptr){
 
		SQNativeClosure *nc = SQNativeClosure::Create(ss,funcz[i].f);
 
		nc->_nparamscheck = funcz[i].nparamscheck;
 
		nc->_name = SQString::Create(ss,funcz[i].name);
 
		if(funcz[i].typemask && !CompileTypemask(nc->_typecheck,funcz[i].typemask))
 
			return NULL;
 
			return nullptr;
 
		t->NewSlot(SQString::Create(ss,funcz[i].name),nc);
 
		i++;
 
	}
 
	return t;
 
}
 

	
 
SQSharedState::SQSharedState()
 
{
 
	_compilererrorhandler = NULL;
 
	_printfunc = NULL;
 
	_compilererrorhandler = nullptr;
 
	_printfunc = nullptr;
 
	_debuginfo = false;
 
	_notifyallexceptions = false;
 
	_scratchpad=NULL;
 
	_scratchpad=nullptr;
 
	_scratchpadsize=0;
 
	_collectable_free_processing = false;
 
#ifndef NO_GARBAGE_COLLECTOR
 
	_gc_chain=NULL;
 
	_gc_chain=nullptr;
 
#endif
 
	sq_new(_stringtable,SQStringTable);
 
	sq_new(_metamethods,SQObjectPtrVec);
 
	sq_new(_systemstrings,SQObjectPtrVec);
 
	sq_new(_types,SQObjectPtrVec);
 
	_metamethodsmap = SQTable::Create(this,MT_LAST-1);
 
@@ -186,13 +186,13 @@ SQSharedState::~SQSharedState()
 
	_class_default_delegate = _null_;
 
	_instance_default_delegate = _null_;
 
	_weakref_default_delegate = _null_;
 
	_refs_table.Finalize();
 
#ifndef NO_GARBAGE_COLLECTOR
 
	SQCollectable *t = _gc_chain;
 
	SQCollectable *nx = NULL;
 
	SQCollectable *nx = nullptr;
 
	if(t) {
 
		t->_uiRef++;
 
		while(t) {
 
			t->Finalize();
 
			nx = t->_next;
 
			if(nx) nx->_uiRef++;
 
@@ -296,23 +296,23 @@ SQInteger SQSharedState::CollectGarbage(
 
	EnqueueMarkObject(_thread_default_delegate,queue);
 
	EnqueueMarkObject(_closure_default_delegate,queue);
 
	EnqueueMarkObject(_class_default_delegate,queue);
 
	EnqueueMarkObject(_instance_default_delegate,queue);
 
	EnqueueMarkObject(_weakref_default_delegate,queue);
 

	
 
	SQCollectable *tchain=NULL;
 
	SQCollectable *tchain=nullptr;
 

	
 
	while (!queue.IsEmpty()) {
 
		SQCollectable *q = queue.Pop();
 
		q->EnqueueMarkObjectForChildren(queue);
 
		SQCollectable::RemoveFromChain(&_gc_chain, q);
 
		SQCollectable::AddToChain(&tchain, q);
 
	}
 

	
 
	SQCollectable *t = _gc_chain;
 
	SQCollectable *nx = NULL;
 
	SQCollectable *nx = nullptr;
 
	if(t) {
 
		t->_uiRef++;
 
		while(t) {
 
			t->Finalize();
 
			nx = t->_next;
 
			if(nx) nx->_uiRef++;
 
@@ -337,26 +337,26 @@ SQInteger SQSharedState::CollectGarbage(
 
}
 
#endif
 

	
 
#ifndef NO_GARBAGE_COLLECTOR
 
void SQCollectable::AddToChain(SQCollectable **chain,SQCollectable *c)
 
{
 
    c->_prev = NULL;
 
    c->_prev = nullptr;
 
	c->_next = *chain;
 
	if(*chain) (*chain)->_prev = c;
 
	*chain = c;
 
}
 

	
 
void SQCollectable::RemoveFromChain(SQCollectable **chain,SQCollectable *c)
 
{
 
	if(c->_prev) c->_prev->_next = c->_next;
 
	else *chain = c->_next;
 
	if(c->_next)
 
		c->_next->_prev = c->_prev;
 
	c->_next = NULL;
 
	c->_prev = NULL;
 
	c->_next = nullptr;
 
	c->_prev = nullptr;
 
}
 
#endif
 

	
 
SQChar* SQSharedState::GetScratchPad(SQInteger size)
 
{
 
	SQInteger newsize;
 
@@ -480,22 +480,22 @@ RefTable::RefNode *RefTable::Add(SQHash 
 
}
 

	
 
RefTable::RefNode *RefTable::Get(SQObject &obj,SQHash &mainpos,RefNode **prev,bool add)
 
{
 
	RefNode *ref;
 
	mainpos = ::HashObj(obj)&(_numofslots-1);
 
	*prev = NULL;
 
	*prev = nullptr;
 
	for (ref = _buckets[mainpos]; ref; ) {
 
		if(_rawval(ref->obj) == _rawval(obj) && type(ref->obj) == type(obj))
 
			break;
 
		*prev = ref;
 
		ref = ref->next;
 
	}
 
	if(ref == NULL && add) {
 
	if(ref == nullptr && add) {
 
		if(_numofslots == _slotused) {
 
			assert(_freelist == 0);
 
			assert(_freelist == nullptr);
 
			Resize(_numofslots*2);
 
			mainpos = ::HashObj(obj)&(_numofslots-1);
 
		}
 
		ref = Add(mainpos,obj);
 
	}
 
	return ref;
 
@@ -507,22 +507,22 @@ void RefTable::AllocNodes(SQUnsignedInte
 
	RefNode *nodes;
 
	bucks = (RefNode **)SQ_MALLOC((size * sizeof(RefNode *)) + (size * sizeof(RefNode)));
 
	nodes = (RefNode *)&bucks[size];
 
	RefNode *temp = nodes;
 
	SQUnsignedInteger n;
 
	for(n = 0; n < size - 1; n++) {
 
		bucks[n] = NULL;
 
		bucks[n] = nullptr;
 
		temp->refs = 0;
 
		new (&temp->obj) SQObjectPtr;
 
		temp->next = temp+1;
 
		temp++;
 
	}
 
	bucks[n] = NULL;
 
	bucks[n] = nullptr;
 
	temp->refs = 0;
 
	new (&temp->obj) SQObjectPtr;
 
	temp->next = NULL;
 
	temp->next = nullptr;
 
	_freelist = nodes;
 
	_nodes = nodes;
 
	_buckets = bucks;
 
	_slotused = 0;
 
	_numofslots = size;
 
}
 
@@ -540,13 +540,13 @@ SQStringTable::SQStringTable()
 
	_slotused = 0;
 
}
 

	
 
SQStringTable::~SQStringTable()
 
{
 
	SQ_FREE(_strings,sizeof(SQString*)*_numofslots);
 
	_strings = NULL;
 
	_strings = nullptr;
 
}
 

	
 
void SQStringTable::AllocNodes(SQInteger size)
 
{
 
	_numofslots = size;
 
	_strings = (SQString**)SQ_MALLOC(sizeof(SQString*)*_numofslots);
 
@@ -577,14 +577,14 @@ SQString *SQStringTable::Add(const SQCha
 
SQString::SQString(const SQChar *news, SQInteger len)
 
{
 
	memcpy(_val,news,(size_t)len);
 
	_val[len] = '\0';
 
	_len = len;
 
	_hash = ::_hashstr(news,(size_t)len);
 
	_next = NULL;
 
	_sharedstate = NULL;
 
	_next = nullptr;
 
	_sharedstate = nullptr;
 
}
 

	
 
void SQStringTable::Resize(SQInteger size)
 
{
 
	SQInteger oldsize=_numofslots;
 
	SQString **oldtable=_strings;
 
@@ -602,13 +602,13 @@ void SQStringTable::Resize(SQInteger siz
 
	SQ_FREE(oldtable,oldsize*sizeof(SQString*));
 
}
 

	
 
void SQStringTable::Remove(SQString *bs)
 
{
 
	SQString *s;
 
	SQString *prev=NULL;
 
	SQString *prev=nullptr;
 
	SQHash h = bs->_hash&(_numofslots - 1);
 

	
 
	for (s = _strings[h]; s; ){
 
		if(s == bs){
 
			if(prev)
 
				prev->_next = s->_next;
src/3rdparty/squirrel/squirrel/sqtable.cpp
Show inline comments
 
@@ -15,13 +15,13 @@
 
SQTable::SQTable(SQSharedState *ss,SQInteger nInitialSize)
 
{
 
	SQInteger pow2size=MINPOWER2;
 
	while(nInitialSize>pow2size)pow2size=pow2size<<1;
 
	AllocNodes(pow2size);
 
	_usednodes = 0;
 
	_delegate = NULL;
 
	_delegate = nullptr;
 
	INIT_CHAIN();
 
	ADD_TO_CHAIN(&_sharedstate->_gc_chain,this);
 
}
 

	
 
void SQTable::Remove(const SQObjectPtr &key)
 
{
 
@@ -36,13 +36,13 @@ void SQTable::Remove(const SQObjectPtr &
 

	
 
void SQTable::AllocNodes(SQInteger nSize)
 
{
 
	_HashNode *nodes=(_HashNode *)SQ_MALLOC(sizeof(_HashNode)*nSize);
 
	for(SQInteger i=0;i<nSize;i++){
 
		new (&nodes[i]) _HashNode;
 
		nodes[i].next=NULL;
 
		nodes[i].next=nullptr;
 
	}
 
	_numofnodes=nSize;
 
	_nodes=nodes;
 
	_firstfree=&_nodes[_numofnodes-1];
 
}
 

	
 
@@ -117,34 +117,34 @@ bool SQTable::NewSlot(const SQObjectPtr 
 
		SQHash mph = HashObj(mp->key) & (_numofnodes - 1);
 
		_HashNode *othern;  /* main position of colliding node */
 

	
 
		if (mp > n && (othern = &_nodes[mph]) != mp){
 
			/* yes; move colliding node into free position */
 
			while (othern->next != mp){
 
				assert(othern->next != NULL);
 
				assert(othern->next != nullptr);
 
				othern = othern->next;  /* find previous */
 
			}
 
			othern->next = n;  /* redo the chain with `n' in place of `mp' */
 
			n->key = mp->key;
 
			n->val = mp->val;/* copy colliding node into free pos. (mp->next also goes) */
 
			n->next = mp->next;
 
			mp->key = _null_;
 
			mp->val = _null_;
 
			mp->next = NULL;  /* now `mp' is free */
 
			mp->next = nullptr;  /* now `mp' is free */
 
		}
 
		else{
 
			/* new node will go into free position */
 
			n->next = mp->next;  /* chain new position */
 
			mp->next = n;
 
			mp = n;
 
		}
 
	}
 
	mp->key = key;
 

	
 
	for (;;) {  /* correct `firstfree' */
 
		if (type(_firstfree->key) == OT_NULL && _firstfree->next == NULL) {
 
		if (type(_firstfree->key) == OT_NULL && _firstfree->next == nullptr) {
 
			mp->val = val;
 
			_usednodes++;
 
			return true;  /* OK; table still has a free place */
 
		}
 
		else if (_firstfree == _nodes) break;  /* cannot decrement from here */
 
		else (_firstfree)--;
 
@@ -187,13 +187,13 @@ void SQTable::_ClearNodes()
 
	for(SQInteger i = 0;i < _numofnodes; i++) { _nodes[i].key = _null_; _nodes[i].val = _null_; }
 
}
 

	
 
void SQTable::Finalize()
 
{
 
	_ClearNodes();
 
	SetDelegate(NULL);
 
	SetDelegate(nullptr);
 
}
 

	
 
void SQTable::Clear()
 
{
 
	_ClearNodes();
 
	_usednodes = 0;
src/3rdparty/squirrel/squirrel/sqtable.h
Show inline comments
 
@@ -24,13 +24,13 @@ inline SQHash HashObj(const SQObjectPtr 
 

	
 
struct SQTable : public SQDelegable
 
{
 
private:
 
	struct _HashNode
 
	{
 
		_HashNode() { next = NULL; }
 
		_HashNode() { next = nullptr; }
 
		SQObjectPtr val;
 
		SQObjectPtr key;
 
		_HashNode *next;
 
	};
 
	_HashNode *_firstfree;
 
	_HashNode *_nodes;
 
@@ -44,20 +44,20 @@ private:
 
	void _ClearNodes();
 
public:
 
	static SQTable* Create(SQSharedState *ss,SQInteger nInitialSize)
 
	{
 
		SQTable *newtable = (SQTable*)SQ_MALLOC(sizeof(SQTable));
 
		new (newtable) SQTable(ss, nInitialSize);
 
		newtable->_delegate = NULL;
 
		newtable->_delegate = nullptr;
 
		return newtable;
 
	}
 
	void Finalize() override;
 
	SQTable *Clone();
 
	~SQTable()
 
	{
 
		SetDelegate(NULL);
 
		SetDelegate(nullptr);
 
		REMOVE_FROM_CHAIN(&_sharedstate->_gc_chain, this);
 
		for (SQInteger i = 0; i < _numofnodes; i++) _nodes[i].~_HashNode();
 
		SQ_FREE(_nodes, _numofnodes * sizeof(_HashNode));
 
	}
 
#ifndef NO_GARBAGE_COLLECTOR
 
	void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue) override;
 
@@ -67,13 +67,13 @@ public:
 
		_HashNode *n = &_nodes[hash];
 
		do{
 
			if(_rawval(n->key) == _rawval(key) && type(n->key) == type(key)){
 
				return n;
 
			}
 
		}while((n = n->next));
 
		return NULL;
 
		return nullptr;
 
	}
 
	bool Get(const SQObjectPtr &key,SQObjectPtr &val);
 
	void Remove(const SQObjectPtr &key);
 
	bool Set(const SQObjectPtr &key, const SQObjectPtr &val);
 
	//returns true if a new slot has been created false if it was already present
 
	bool NewSlot(const SQObjectPtr &key,const SQObjectPtr &val);
src/3rdparty/squirrel/squirrel/squserdata.h
Show inline comments
 
/*	see copyright notice in squirrel.h */
 
#ifndef _SQUSERDATA_H_
 
#define _SQUSERDATA_H_
 

	
 
struct SQUserData : SQDelegable
 
{
 
	SQUserData(SQSharedState *ss, SQInteger size){ _delegate = 0; _hook = NULL; INIT_CHAIN(); ADD_TO_CHAIN(&_ss(this)->_gc_chain, this); _size = size; _typetag = 0;
 
	SQUserData(SQSharedState *ss, SQInteger size){ _delegate = nullptr; _hook = nullptr; INIT_CHAIN(); ADD_TO_CHAIN(&_ss(this)->_gc_chain, this); _size = size; _typetag = nullptr;
 
}
 
	~SQUserData()
 
	{
 
		REMOVE_FROM_CHAIN(&_ss(this)->_gc_chain, this);
 
		SetDelegate(NULL);
 
		SetDelegate(nullptr);
 
	}
 
	static SQUserData* Create(SQSharedState *ss, SQInteger size)
 
	{
 
		SQUserData* ud = (SQUserData*)SQ_MALLOC(sizeof(SQUserData)+(size-1));
 
		new (ud) SQUserData(ss, size);
 
		return ud;
 
	}
 
#ifndef NO_GARBAGE_COLLECTOR
 
	void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
 
	void Finalize(){SetDelegate(NULL);}
 
	void Finalize(){SetDelegate(nullptr);}
 
#endif
 
	void Release() {
 
		if (_hook) _hook(_val,_size);
 
		SQInteger tsize = _size - 1;
 
		this->~SQUserData();
 
		SQ_FREE(this, sizeof(SQUserData) + tsize);
src/3rdparty/squirrel/squirrel/squtils.h
Show inline comments
 
@@ -15,13 +15,13 @@ void sq_vm_free(void *p,SQUnsignedIntege
 
//sqvector mini vector class, supports objects by value
 
template<typename T> class sqvector
 
{
 
public:
 
	sqvector()
 
	{
 
		_vals = NULL;
 
		_vals = nullptr;
 
		_size = 0;
 
		_allocated = 0;
 
	}
 
	sqvector(const sqvector<T>& v)
 
	{
 
		copy(v);
src/3rdparty/squirrel/squirrel/sqvm.cpp
Show inline comments
 
@@ -30,13 +30,13 @@ void SQVM::ClearStack(SQInteger last_top
 
	SQObjectValue unOldVal;
 
	while (last_top >= _top) {
 
		SQObjectPtr &o = _stack._vals[last_top--];
 
		tOldType = o._type;
 
		unOldVal = o._unVal;
 
		o._type = OT_NULL;
 
		o._unVal.pUserPointer = NULL;
 
		o._unVal.pUserPointer = nullptr;
 
		__Release(tOldType,unOldVal);
 
	}
 
}
 

	
 
bool SQVM::BW_OP(SQUnsignedInteger op,SQObjectPtr &trg,const SQObjectPtr &o1,const SQObjectPtr &o2)
 
{
 
@@ -104,26 +104,26 @@ SQVM::SQVM(SQSharedState *ss)
 
{
 
	_sharedstate=ss;
 
	_suspended = SQFalse;
 
	_suspended_target=-1;
 
	_suspended_root = SQFalse;
 
	_suspended_traps=0;
 
	_foreignptr=NULL;
 
	_foreignptr=nullptr;
 
	_nnativecalls=0;
 
	_lasterror = _null_;
 
	_errorhandler = _null_;
 
	_debughook = _null_;
 
	_can_suspend = false;
 
	_in_stackoverflow = false;
 
	_ops_till_suspend = 0;
 
	_callsstack = NULL;
 
	_callsstack = nullptr;
 
	_callsstacksize = 0;
 
	_alloccallsstacksize = 0;
 
	_top = 0;
 
	_stackbase = 0;
 
	ci = NULL;
 
	ci = nullptr;
 
	INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this);
 
}
 

	
 
void SQVM::Finalize()
 
{
 
	_roottable = _null_;
 
@@ -376,13 +376,13 @@ bool SQVM::StartCall(SQClosure *closure,
 
	if(type(closure->_env) == OT_WEAKREF) {
 
		_stack._vals[stackbase] = _weakref(closure->_env)->_obj;
 
	}
 

	
 
	if (!tailcall) {
 
		CallInfo lc = {};
 
		lc._generator = NULL;
 
		lc._generator = nullptr;
 
		lc._etraps = 0;
 
		lc._prevstkbase = (SQInt32) ( stackbase - _stackbase );
 
		lc._target = (SQInt32) target;
 
		lc._prevtop = (SQInt32) (_top - _stackbase);
 
		lc._ncalls = 1;
 
		lc._root = SQFalse;
 
@@ -554,13 +554,13 @@ bool SQVM::DELEGATE_OP(SQObjectPtr &trg,
 
		if(!_table(o1)->SetDelegate(_table(o2))){
 
			Raise_Error("delegate cycle detected");
 
			return false;
 
		}
 
		break;
 
	case OT_NULL:
 
		_table(o1)->SetDelegate(NULL);
 
		_table(o1)->SetDelegate(nullptr);
 
		break;
 
	default:
 
		Raise_Error("using '%s' as delegate", GetTypeName(o2));
 
		return false;
 
		break;
 
	}
 
@@ -624,13 +624,13 @@ bool SQVM::GETVARGV_OP(SQObjectPtr &targ
 
	target = _vargsstack[ci->_vargs.base+idx];
 
	return true;
 
}
 

	
 
bool SQVM::CLASS_OP(SQObjectPtr &target,SQInteger baseclass,SQInteger attributes)
 
{
 
	SQClass *base = NULL;
 
	SQClass *base = nullptr;
 
	SQObjectPtr attrs;
 
	if(baseclass != -1) {
 
		if(type(_stack._vals[_stackbase+baseclass]) != OT_CLASS) { Raise_Error("trying to inherit from a %s",GetTypeName(_stack._vals[_stackbase+baseclass])); return false; }
 
		base = _class(_stack._vals[_stackbase + baseclass]);
 
	}
 
	if(attributes != MAX_FUNC_STACKSIZE) {
 
@@ -705,13 +705,13 @@ bool SQVM::Execute(SQObjectPtr &closure,
 
	switch(et) {
 
		case ET_CALL: {
 
			SQInteger last_top = _top;
 
			temp_reg = closure;
 
			if(!StartCall(_closure(temp_reg), _top - nargs, nargs, stackbase, false)) {
 
				//call the handler if there are no calls in the stack, if not relies on the previous node
 
				if(ci == NULL) CallErrorHandler(_lasterror);
 
				if(ci == nullptr) CallErrorHandler(_lasterror);
 
				return false;
 
			}
 
			if (_funcproto(_closure(temp_reg)->_function)->_bgenerator) {
 
				//SQFunctionProto *f = _funcproto(_closure(temp_reg)->_function);
 
				SQGenerator *gen = SQGenerator::Create(_ss(this), _closure(temp_reg));
 
				_GUARD(gen->Yield(this));
 
@@ -1157,13 +1157,13 @@ bool SQVM::CallNative(SQNativeClosure *n
 
	}
 
	SQInteger oldtop = _top;
 
	SQInteger oldstackbase = _stackbase;
 
	_top = stackbase + nargs;
 
	CallInfo lci = {};
 
	lci._closure = nclosure;
 
	lci._generator = NULL;
 
	lci._generator = nullptr;
 
	lci._etraps = 0;
 
	lci._prevstkbase = (SQInt32) (stackbase - _stackbase);
 
	lci._ncalls = 1;
 
	lci._prevtop = (SQInt32) (oldtop - oldstackbase);
 
	PUSH_CALLINFO(this, lci);
 
	_stackbase = stackbase;
0 comments (0 inline, 0 general)