Update squirrel to 2.2.4 (keeping const-correctness of sqstdstream)
authormathnerd314 <mathnerd314@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Tue, 9 Feb 2010 22:06:41 +0000 (22:06 +0000)
committermathnerd314 <mathnerd314@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Tue, 9 Feb 2010 22:06:41 +0000 (22:06 +0000)
git-svn-id: http://supertux.lethargik.org/svn/supertux/trunk/supertux@6311 837edb03-e0f3-0310-88ca-d4d4e8b29345

external/squirrel/HISTORY
external/squirrel/README
external/squirrel/include/squirrel.h
external/squirrel/squirrel/sqvm.cpp

index b6dcc83..6c29474 100644 (file)
@@ -1,3 +1,7 @@
+***version 2.2.4 stable***\r
+-fixed bug in functions with default parameters\r
+\r
+***2009-06-30          ***\r
 ***version 2.2.3 stable***\r
 -added sq_getfunctioninfo\r
 -added compile time flag SQUSEDOUBLE to use double precision floats\r
index 5bd1cd4..c46c923 100644 (file)
@@ -1,4 +1,4 @@
-The programming language SQUIRREL 2.2.3 stable\r
+The programming language SQUIRREL 2.2.4 stable\r
 \r
 --------------------------------------------------\r
 The project has been compiled and run on Windows(Windows XP/2000 on Intel x86 Windows XP Pro on AMD x64) and\r
index 7d2f9a0..141908d 100644 (file)
@@ -157,7 +157,7 @@ typedef char SQChar;
 #define MAX_CHAR 0xFF
 #endif
 
-#define SQUIRREL_VERSION       _SC("Squirrel 2.2.3 stable")
+#define SQUIRREL_VERSION       _SC("Squirrel 2.2.4 stable")
 #define SQUIRREL_COPYRIGHT     _SC("Copyright (C) 2003-2009 Alberto Demichelis")
 #define SQUIRREL_AUTHOR                _SC("Alberto Demichelis")
 
index 9b1827a..d243193 100644 (file)
@@ -327,8 +327,8 @@ bool SQVM::StartCall(SQClosure *closure,SQInteger target,SQInteger args,SQIntege
        SQInteger nargs = args;
        if (paramssize != nargs) {
                SQInteger ndef = func->_ndefaultparams;
-               if(ndef && nargs < paramssize) {
-                       SQInteger diff = paramssize - nargs;
+               SQInteger diff;
+               if(ndef && nargs < paramssize && (diff = paramssize - nargs) <= ndef) {
                        for(SQInteger n = ndef - diff; n < ndef; n++) {
                                _stack._vals[stackbase + (nargs++)] = closure->_defaultparams[n];
                        }