mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-11 06:34:36 +00:00
Fix temporary buffer for scripting conversions.
This commit is contained in:
parent
478a04bea8
commit
c16b88d709
4 changed files with 32 additions and 7 deletions
|
|
@ -46,21 +46,29 @@
|
|||
extern StringStack STR;
|
||||
extern ConsoleValueStack<4096> gCallStack;
|
||||
|
||||
char ConsoleValue::sConversionBuffer[ConversionBufferSize];
|
||||
Vector<ConsoleValue::ConversionBuffer> ConsoleValue::sConversionBuffer;
|
||||
|
||||
void ConsoleValue::init()
|
||||
{
|
||||
dMemset(sConversionBuffer, '\0', ConversionBufferSize);
|
||||
sConversionBuffer.reserve(8192);
|
||||
}
|
||||
|
||||
void ConsoleValue::resetConversionBuffer()
|
||||
{
|
||||
sConversionBuffer.resetAndTreatAsScratchBuffer();
|
||||
}
|
||||
|
||||
char* ConsoleValue::convertToBuffer() const
|
||||
{
|
||||
ConversionBuffer conversion;
|
||||
|
||||
if (type == ConsoleValueType::cvFloat)
|
||||
dSprintf(sConversionBuffer, ConversionBufferSize, "%.9g", f);
|
||||
dSprintf(conversion.buffer, ConversionBufferStride, "%.9g", f);
|
||||
else
|
||||
dSprintf(sConversionBuffer, ConversionBufferSize, "%lld", i);
|
||||
dSprintf(conversion.buffer, ConversionBufferStride, "%lld", i);
|
||||
|
||||
return sConversionBuffer;
|
||||
sConversionBuffer.push_back(std::move(conversion));
|
||||
return sConversionBuffer.last().buffer;
|
||||
}
|
||||
|
||||
const char* ConsoleValue::getConsoleData() const
|
||||
|
|
|
|||
|
|
@ -148,10 +148,15 @@ class ConsoleValue
|
|||
|
||||
enum Constants
|
||||
{
|
||||
ConversionBufferSize = 32
|
||||
ConversionBufferStride = 32
|
||||
};
|
||||
|
||||
static char sConversionBuffer[ConversionBufferSize];
|
||||
struct ConversionBuffer
|
||||
{
|
||||
char buffer[ConversionBufferStride];
|
||||
};
|
||||
|
||||
static Vector<ConversionBuffer> sConversionBuffer;
|
||||
|
||||
char* convertToBuffer() const;
|
||||
|
||||
|
|
@ -387,6 +392,7 @@ public:
|
|||
}
|
||||
|
||||
static void init();
|
||||
static void resetConversionBuffer();
|
||||
};
|
||||
|
||||
// Transparently converts ConsoleValue[] to const char**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue