فهرست منبع

Fixes from squirrel

mingodad 8 سال پیش
والد
کامیت
9ff01dfccb
5فایلهای تغییر یافته به همراه17 افزوده شده و 10 حذف شده
  1. 2 2
      SquiLu/include/squirrel.h
  2. 0 1
      SquiLu/sq/sq.c
  3. 13 5
      SquiLu/squirrel/sqapi.cpp
  4. 1 1
      SquiLu/squirrel/sqclass.cpp
  5. 1 1
      SquiLu/squirrel/sqstate.cpp

+ 2 - 2
SquiLu/include/squirrel.h

@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2012 Alberto Demichelis
+Copyright (c) 2003-2017 Alberto Demichelis
 Forked by Domingo Alvarez Duarte
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -123,7 +123,7 @@ struct SQOuter;
 #include "sqconfig.h"
 
 #define SQUIRREL_VERSION	_SC("SquiLu based on Squirrel 3.1 stable and Lua 5.1.5")
-#define SQUIRREL_COPYRIGHT	_SC("Copyright (C) 2003-2016 Alberto Demichelis, Domingo Alvarez Duarte")
+#define SQUIRREL_COPYRIGHT	_SC("Copyright (C) 2003-2017 Alberto Demichelis, Domingo Alvarez Duarte")
 #define SQUIRREL_AUTHOR		_SC("Alberto Demichelis, Domingo Alvarez Duarte")
 #define SQUIRREL_VERSION_NUMBER	310
 

+ 0 - 1
SquiLu/sq/sq.c

@@ -58,7 +58,6 @@ void errorfunc(HSQUIRRELVM v,const SQChar *s,...)
 	va_start(vl, s);
 	scvprintf(stderr, s, vl);
 	va_end(vl);
-	(void)v; /* UNUSED */
 }
 
 void PrintVersionInfos()

+ 13 - 5
SquiLu/squirrel/sqapi.cpp

@@ -216,7 +216,7 @@ SQUnsignedInteger sq_getvmrefcount(HSQUIRRELVM SQ_UNUSED_ARG(v), const HSQOBJECT
 
 const SQChar *sq_objtostring(const HSQOBJECT *o)
 {
-	if(sq_type(*o) == OT_STRING) {
+	if(sqtype(*o) == OT_STRING) {
 		return _stringval(*o);
 	}
 	return NULL;
@@ -641,7 +641,7 @@ SQRESULT sq_setclosureroot(HSQUIRRELVM v,SQInteger idx)
         v->Pop();
         return SQ_OK;
     }
-    return sq_throwerror(v, _SC("ivalid type"));
+    return sq_throwerror(v, _SC("invalid type"));
 }
 
 SQRESULT sq_getclosureroot(HSQUIRRELVM v,SQInteger idx)
@@ -799,7 +799,7 @@ SQRESULT sq_setconsttable(HSQUIRRELVM v)
 		v->Pop();
 		return SQ_OK;
 	}
-	return sq_throwerror(v, _SC("ivalid type, expected table"));
+	return sq_throwerror(v, _SC("invalid type, expected table"));
 }
 
 void sq_setforeignptr(HSQUIRRELVM v,SQUserPointer p)
@@ -916,6 +916,10 @@ SQRESULT sq_getinteger(HSQUIRRELVM v,SQInteger idx,SQInteger *i)
 		*i = tointeger(o);
 		return SQ_OK;
 	}
+    if(sq_isbool(o)) {
+        *i = SQVM::IsFalse(o)?SQFalse:SQTrue;
+        return SQ_OK;
+    }
 	return SQ_ERROR;
 }
 
@@ -1274,7 +1278,11 @@ SQRESULT sq_setdelegate(HSQUIRRELVM v,SQInteger idx)
 	switch(type) {
 	case OT_TABLE:
 		if(sqtype(mt) == OT_TABLE) {
-			if(!_table(self)->SetDelegate(_table(mt))) return sq_throwerror(v, _SC("delagate cycle")); v->Pop();}
+			if(!_table(self)->SetDelegate(_table(mt))) {
+                return sq_throwerror(v, _SC("delagate cycle"));
+            }
+			v->Pop();
+        }
 		else if(sqtype(mt)==OT_NULL) {
 			_table(self)->SetDelegate(NULL); v->Pop(); }
 		else return sq_aux_invalidtype(v,type);
@@ -1552,7 +1560,7 @@ SQRESULT sq_call(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror)
 	if(v->Call(v->GetUp(-(params+1)),params,v->_top-params,res,raiseerror?true:false)){
 
 		if(!v->_suspended) {
-			v->Pop(params);//pop closure and args
+			v->Pop(params);//pop args
 #ifdef SQ_WITH_DELAYED_RELEASE_HOOKS
 			//collect garbage right after function call if any
 			_ss(v)->CallDelayedReleaseHooks(v);

+ 1 - 1
SquiLu/squirrel/sqclass.cpp

@@ -189,7 +189,7 @@ SQInstance::~SQInstance()
 	if(_class){ Finalize(); } //if _class is null it was already finalized by the GC
 }
 
-bool SQInstance::GetMetaMethod(SQVM SQ_UNUSED_ARG(*v),SQMetaMethod mm,SQObjectPtr &res)
+bool SQInstance::GetMetaMethod(SQVM* SQ_UNUSED_ARG(v),SQMetaMethod mm,SQObjectPtr &res)
 {
 	if(sqtype(_class->_metamethods[mm]) != OT_NULL) {
 		res = _class->_metamethods[mm];

+ 1 - 1
SquiLu/squirrel/sqstate.cpp

@@ -291,7 +291,7 @@ void SQSharedState::MarkObject(SQObjectPtr &o,SQCollectable **chain)
 	}
 }
 
-void SQSharedState::RunMark(SQVM SQ_UNUSED_ARG(*vm),SQCollectable **tchain)
+void SQSharedState::RunMark(SQVM* SQ_UNUSED_ARG(vm),SQCollectable **tchain)
 {
 	SQVM *vms = _thread(_root_vm);