Browse Source

Fixed a mistake of referencing the container in the wrong position in the stack on functions container_rawget and container_get

mingodad 13 years ago
parent
commit
8c2ae4887e
1 changed files with 2 additions and 4 deletions
  1. 2 4
      squirrel/sqbaselib.cpp

+ 2 - 4
squirrel/sqbaselib.cpp

@@ -492,12 +492,11 @@ static SQInteger container_rawset(HSQUIRRELVM v)
 
 
 static SQInteger container_rawget(HSQUIRRELVM v)
 static SQInteger container_rawget(HSQUIRRELVM v)
 {
 {
-    SQInteger top = sq_gettop(v);
     switch(sq_gettop(v)){
     switch(sq_gettop(v)){
         case 2: return SQ_SUCCEEDED(sq_rawget(v,-2))?1:SQ_ERROR;break;
         case 2: return SQ_SUCCEEDED(sq_rawget(v,-2))?1:SQ_ERROR;break;
         case 3: {
         case 3: {
             sq_push(v, 2); //copy key to top
             sq_push(v, 2); //copy key to top
-            sq_rawget(v,-3); //if it fail pop the key and default value is on top
+            sq_rawget(v,-4); //if it fail pop the key and default value is on top
             return 1;
             return 1;
         }
         }
         break;
         break;
@@ -507,12 +506,11 @@ static SQInteger container_rawget(HSQUIRRELVM v)
 
 
 static SQInteger container_get(HSQUIRRELVM v)
 static SQInteger container_get(HSQUIRRELVM v)
 {
 {
-    SQInteger top = sq_gettop(v);
     switch(sq_gettop(v)){
     switch(sq_gettop(v)){
         case 2: return SQ_SUCCEEDED(sq_get(v,-2))?1:SQ_ERROR;break;
         case 2: return SQ_SUCCEEDED(sq_get(v,-2))?1:SQ_ERROR;break;
         case 3: {
         case 3: {
             sq_push(v, 2); //copy key to top
             sq_push(v, 2); //copy key to top
-            sq_get(v,-3); //if it fail pop the key and default value is on top
+            sq_get(v,-4); //if it fail pop the key and default value is on top
             return 1;
             return 1;
         }
         }
         break;
         break;