Просмотр исходного кода

Added a check for array/table as default parameters and throw an error, this is because the actual implementation is reusing the same object on every call instead of creating a new one.

mingodad 13 лет назад
Родитель
Сommit
e5aa50e70e
1 измененных файлов с 2 добавлено и 1 удалено
  1. 2 1
      squirrel/sqcompiler.cpp

+ 2 - 1
squirrel/sqcompiler.cpp

@@ -1632,7 +1632,8 @@ if(color == "yellow"){
 				funcstate->AddParameter(paramname, _scope.nested+1, is_reference ? _VAR_REFERENCE : _VAR_ANY);
 				if(_token == _SC('=')) {
 				    if(is_reference) Error(_SC("parameter passed by reference can't have default value"));
-					Lex();
+					Lex();
+					if(_token == _SC('[') || _token == _SC('{')) Error(_SC("array/table default parameter not supported"));
 					Expression();
 					funcstate->AddDefaultParam(_fs->TopTarget());
 					defparams++;