summaryrefslogtreecommitdiff
path: root/src/3rdparty/squirrel/squirrel/sqvm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/squirrel/squirrel/sqvm.cpp')
-rw-r--r--src/3rdparty/squirrel/squirrel/sqvm.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/3rdparty/squirrel/squirrel/sqvm.cpp b/src/3rdparty/squirrel/squirrel/sqvm.cpp
index e94f05118..beba018bf 100644
--- a/src/3rdparty/squirrel/squirrel/sqvm.cpp
+++ b/src/3rdparty/squirrel/squirrel/sqvm.cpp
@@ -1,6 +1,9 @@
/*
see copyright notice in squirrel.h
*/
+
+#include "../../../stdafx.h"
+
#include <squirrel.h>
#include "sqpcheader.h"
#include <math.h>
@@ -15,6 +18,10 @@
#include "sqarray.h"
#include "sqclass.h"
+#include "../../../string_func.h"
+
+#include "../../../safeguards.h"
+
#define TOP() (_stack._vals[_top-1])
#define CLEARSTACK(_last_top) { if((_last_top) >= _top) ClearStack(_last_top); }
@@ -251,18 +258,19 @@ bool SQVM::CMP_OP(CmpOP op, const SQObjectPtr &o1,const SQObjectPtr &o2,SQObject
void SQVM::ToString(const SQObjectPtr &o,SQObjectPtr &res)
{
+ char buf[64];
switch(type(o)) {
case OT_STRING:
res = o;
return;
case OT_FLOAT:
- sprintf(_sp(rsl(NUMBER_MAX_CHAR+1)),"%g",_float(o));
+ seprintf(buf, lastof(buf),"%g",_float(o));
break;
case OT_INTEGER:
- sprintf(_sp(rsl(NUMBER_MAX_CHAR+1)),SQ_PRINTF64,_integer(o));
+ seprintf(buf, lastof(buf),SQ_PRINTF64,_integer(o));
break;
case OT_BOOL:
- sprintf(_sp(rsl(6)),_integer(o)?"true":"false");
+ seprintf(buf, lastof(buf),_integer(o)?"true":"false");
break;
case OT_TABLE:
case OT_USERDATA:
@@ -276,9 +284,9 @@ void SQVM::ToString(const SQObjectPtr &o,SQObjectPtr &res)
}
}
default:
- sprintf(_sp(rsl(sizeof(void*)+20)),"(%s : 0x%p)",GetTypeName(o),(void*)_rawval(o));
+ seprintf(buf, lastof(buf),"(%s : 0x%p)",GetTypeName(o),(void*)_rawval(o));
}
- res = SQString::Create(_ss(this),_spval);
+ res = SQString::Create(_ss(this),buf);
}