Fix another round of squirrel coverity issues
[supertux.git] / squirrel_coverity.patch
1 diff --git a/external/squirrel/sqstdlib/sqstdstring.cpp b/external/squirrel/sqstdlib/sqstdstring.cpp
2 index 33316fa..a213135 100644
3 --- a/external/squirrel/sqstdlib/sqstdstring.cpp
4 +++ b/external/squirrel/sqstdlib/sqstdstring.cpp
5 @@ -116,6 +116,7 @@ SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen
6                                 fmt[fpos++] = _SC('\0');\r
7                                 }\r
8  #endif\r
9 +                break;\r
10                         case 'c':\r
11                                 if(SQ_FAILED(sq_getinteger(v,nparam,&ti))) \r
12                                         return sq_throwerror(v,_SC("integer expected for the specified format"));\r
13 diff --git a/external/squirrel/squirrel/sqfuncstate.cpp b/external/squirrel/squirrel/sqfuncstate.cpp
14 index aff80e5..1667815 100644
15 --- a/external/squirrel/squirrel/sqfuncstate.cpp
16 +++ b/external/squirrel/squirrel/sqfuncstate.cpp
17 @@ -460,6 +460,7 @@ void SQFuncState::AddInstruction(SQInstruction &i)
18                                 pi._arg1 = i._arg1;\r
19                                 return;\r
20                         }\r
21 +            break;\r
22                 case _OP_SET:\r
23                 case _OP_NEWSLOT:\r
24                         if(i._arg0 == i._arg3) {\r
25 diff --git a/external/squirrel/squirrel/sqlexer.cpp b/external/squirrel/squirrel/sqlexer.cpp
26 index 547835b..f4d4d04 100644
27 --- a/external/squirrel/squirrel/sqlexer.cpp
28 +++ b/external/squirrel/squirrel/sqlexer.cpp
29 @@ -18,7 +18,24 @@
30  #define TERMINATE_BUFFER() {_longstr.push_back(_SC('\0'));}\r
31  #define ADD_KEYWORD(key,id) _keywords->NewSlot( SQString::Create(ss, _SC(#key)) ,SQInteger(id))\r
32  \r
33 -SQLexer::SQLexer(){}\r
34 +SQLexer::SQLexer() :\r
35 +  _curtoken(0),\r
36 +  _keywords(NULL),\r
37 +  _reached_eof(false),\r
38 +  _prevtoken(0),\r
39 +  _currentline(0),\r
40 +  _lasttokenline(0),\r
41 +  _currentcolumn(0),\r
42 +  _svalue(NULL),\r
43 +  _nvalue(0),\r
44 +  _fvalue(0.0),\r
45 +  _readf(NULL),\r
46 +  _up(NULL),\r
47 +  _currdata('\0'),\r
48 +  _sharedstate(NULL),\r
49 +  _errfunc(NULL),\r
50 +  _errtarget(NULL)\r
51 +{}\r
52  SQLexer::~SQLexer()\r
53  {\r
54         _keywords->Release();\r
55 @@ -192,6 +209,7 @@ SQInteger SQLexer::Lex()
56                         NEXT();\r
57                         if (CUR_CHAR != _SC('=')){ RETURN_TOKEN('!')}\r
58                         else { NEXT(); RETURN_TOKEN(TK_NE); }\r
59 +            break;\r
60                 case _SC('@'): {\r
61                         SQInteger stype;\r
62                         NEXT();\r
63 @@ -203,6 +221,7 @@ SQInteger SQLexer::Lex()
64                         }\r
65                         Error(_SC("error parsing the string"));\r
66                                            }\r
67 +            break;\r
68                 case _SC('"'):\r
69                 case _SC('\''): {\r
70                         SQInteger stype;\r
71 @@ -211,6 +230,7 @@ SQInteger SQLexer::Lex()
72                         }\r
73                         Error(_SC("error parsing the string"));\r
74                         }\r
75 +            break;\r
76                 case _SC('{'): case _SC('}'): case _SC('('): case _SC(')'): case _SC('['): case _SC(']'):\r
77                 case _SC(';'): case _SC(','): case _SC('?'): case _SC('^'): case _SC('~'):\r
78                         {SQInteger ret = CUR_CHAR;\r
79 diff --git a/external/squirrel/squirrel/sqvm.cpp b/external/squirrel/squirrel/sqvm.cpp
80 index de0927f..e941231 100644
81 --- a/external/squirrel/squirrel/sqvm.cpp
82 +++ b/external/squirrel/squirrel/sqvm.cpp
83 @@ -306,6 +306,7 @@ bool SQVM::ToString(const SQObjectPtr &o,SQObjectPtr &res)
84                                 }\r
85                         }\r
86                 }\r
87 +        break;\r
88         default:\r
89                 scsprintf(_sp(rsl(sizeof(void*)+20)),_SC("(%s : 0x%p)"),GetTypeName(o),(void*)_rawval(o));\r
90         }\r
91 @@ -561,6 +562,7 @@ bool SQVM::FOREACH_OP(SQObjectPtr &o1,SQObjectPtr &o2,SQObjectPtr
92                         _generator(o1)->Resume(this, o3);\r
93                         _FINISH(0);\r
94                 }\r
95 +        break;\r
96         default: \r
97                 Raise_Error(_SC("cannot iterate %s"), GetTypeName(o1));\r
98         }\r
99 @@ -724,6 +726,7 @@ exception_restore:
100                                         continue;\r
101                                 }\r
102                                                           }\r
103 +                break;\r
104                         case _OP_CALL: {\r
105                                         SQObjectPtr clo = STK(arg1);\r
106                                         switch (type(clo)) {\r