Răsfoiți Sursa

Remove static buffer for compiler error message by a compiler instance variable.

mingodad 11 ani în urmă
părinte
comite
250d12392b
1 a modificat fișierele cu 4 adăugiri și 4 ștergeri
  1. 4 4
      SquiLu/squirrel/sqcompiler.cpp

+ 4 - 4
SquiLu/squirrel/sqcompiler.cpp

@@ -100,12 +100,11 @@ public:
 
 	void Error(const SQChar *s, ...)
 	{
-		static SQChar temp[256];
 		va_list vl;
 		va_start(vl, s);
-		scvsprintf(temp, s, vl);
+		scvsnprintf(error_buf, sizeof(error_buf), s, vl);
 		va_end(vl);
-		compilererror = temp;
+		compilererror = error_buf;
 		longjmp(_errorjmp,1);
 	}
 
@@ -1928,7 +1927,8 @@ private:
 	jmp_buf _errorjmp;
 	SQVM *_vm;
 	SQObjectPtrVec _scope_consts;
-	SQObjectPtr _globals;
+	SQObjectPtr _globals;
+	SQChar error_buf[256];
 };
 
 bool Compile(SQVM *vm,SQLEXREADFUNC rg, SQUserPointer up, const SQChar *sourcename, SQObjectPtr &out,