mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
cleanup
This commit is contained in:
parent
02447f0996
commit
f776e73b04
|
|
@ -1076,7 +1076,7 @@ ConsoleValue CodeBlock::exec(U32 ip, const char* functionName, Namespace* thisNa
|
|||
STR.rewind();
|
||||
|
||||
returnValue.setString(retVal, STR.mLen);
|
||||
//STR.setStringValue(returnValue); // Not nice but works.
|
||||
STR.setStringValue(retVal); // Not nice but works.
|
||||
}
|
||||
|
||||
goto execFinished;
|
||||
|
|
@ -2070,9 +2070,6 @@ ConsoleValue CodeBlock::exec(U32 ip, const char* functionName, Namespace* thisNa
|
|||
}
|
||||
}
|
||||
execFinished:
|
||||
#ifdef TORQUE_DEBUG
|
||||
AssertFatal(returnValue.getType() == ConsoleValueType::cvNone, "returnValue was never set during script exec");
|
||||
#endif
|
||||
|
||||
if (telDebuggerOn && setFrame < 0)
|
||||
TelDebugger->popStackFrame();
|
||||
|
|
@ -2129,8 +2126,6 @@ execFinished:
|
|||
AssertFatal(!(STR.mStartStackSize < stackStart), "String stack popped too much in script exec");
|
||||
#endif
|
||||
|
||||
if (returnValue.getType() == ConsoleValueType::cvNone)
|
||||
returnValue.setStringTableEntry(StringTable->EmptyString());
|
||||
return std::move(returnValue);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1555,7 +1555,7 @@ ConsoleValue _internalExecute(S32 argc, ConsoleValue argv[])
|
|||
if (result)
|
||||
{
|
||||
ConsoleValue ret;
|
||||
ret.setString(methodRes, dStrlen(methodRes));
|
||||
ret.setString(methodRes);
|
||||
return std::move(ret);
|
||||
}
|
||||
|
||||
|
|
@ -1644,7 +1644,7 @@ static ConsoleValue _internalExecute(SimObject *object, S32 argc, ConsoleValue a
|
|||
if (result)
|
||||
{
|
||||
ConsoleValue val;
|
||||
val.setString(methodRes, dStrlen(methodRes));
|
||||
val.setString(methodRes);
|
||||
return std::move(val);
|
||||
}
|
||||
|
||||
|
|
@ -1672,7 +1672,7 @@ static ConsoleValue _internalExecute(SimObject *object, S32 argc, ConsoleValue a
|
|||
gEvalState.thisObject = save;
|
||||
|
||||
// Twiddle it back
|
||||
argv[1].setString(oldIdent, dStrlen(oldIdent));
|
||||
argv[1].setString(oldIdent);
|
||||
|
||||
return std::move(ret);
|
||||
}
|
||||
|
|
@ -1934,8 +1934,8 @@ void postConsoleInput( RawData data )
|
|||
// TODO(JTH): Mem leak
|
||||
// Schedule this to happen at the next time event.
|
||||
ConsoleValue* argv = new ConsoleValue[2];
|
||||
argv[0].setString("eval", 4);
|
||||
argv[1].setString(reinterpret_cast<const char*>(data.data), dStrlen(reinterpret_cast<const char*>(data.data)));
|
||||
argv[0].setString("eval");
|
||||
argv[1].setString(reinterpret_cast<const char*>(data.data));
|
||||
|
||||
Sim::postCurrentEvent(Sim::getRootGroup(), new SimConsoleEvent(2, argv, false));
|
||||
}
|
||||
|
|
@ -2577,7 +2577,7 @@ StringArrayToConsoleValueWrapper::StringArrayToConsoleValueWrapper(int targc, co
|
|||
|
||||
for (int i=0; i<targc; i++)
|
||||
{
|
||||
argv[i].setString(targv[i], dStrlen(targv[i]));
|
||||
argv[i].setString(targv[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "core/util/str.h"
|
||||
#include "core/util/journal/journaledSignal.h"
|
||||
#include "core/stringTable.h"
|
||||
|
||||
class SimObject;
|
||||
class Namespace;
|
||||
|
|
@ -119,7 +120,6 @@ extern char *typeValueEmpty;
|
|||
|
||||
enum ConsoleValueType
|
||||
{
|
||||
cvNone = -5,
|
||||
cvInteger = -4,
|
||||
cvFloat = -3,
|
||||
cvString = -2,
|
||||
|
|
@ -160,7 +160,7 @@ class ConsoleValue
|
|||
|
||||
TORQUE_FORCEINLINE bool hasAllocatedData() const
|
||||
{
|
||||
return type == ConsoleValueType::cvString || isConsoleType();
|
||||
return (type == ConsoleValueType::cvString || isConsoleType()) && data != NULL;
|
||||
}
|
||||
|
||||
const char* getConsoleData() const;
|
||||
|
|
@ -170,13 +170,14 @@ class ConsoleValue
|
|||
if (hasAllocatedData())
|
||||
{
|
||||
dFree(data);
|
||||
data = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
ConsoleValue()
|
||||
{
|
||||
type = ConsoleValueType::cvNone;
|
||||
setEmptyString();
|
||||
}
|
||||
|
||||
ConsoleValue(ConsoleValue&& ref) noexcept
|
||||
|
|
@ -186,9 +187,6 @@ public:
|
|||
|
||||
switch (ref.type)
|
||||
{
|
||||
TORQUE_UNLIKELY
|
||||
case cvNone:
|
||||
break;
|
||||
case cvInteger:
|
||||
i = ref.i;
|
||||
break;
|
||||
|
|
@ -205,7 +203,7 @@ public:
|
|||
break;
|
||||
}
|
||||
|
||||
ref.type = cvNone;
|
||||
ref.setEmptyString();
|
||||
}
|
||||
|
||||
ConsoleValue(const ConsoleValue&) = delete;
|
||||
|
|
@ -219,12 +217,11 @@ public:
|
|||
TORQUE_FORCEINLINE void reset()
|
||||
{
|
||||
cleanupData();
|
||||
type = ConsoleValueType::cvNone;
|
||||
setEmptyString();
|
||||
}
|
||||
|
||||
TORQUE_FORCEINLINE F64 getFloat() const
|
||||
{
|
||||
AssertFatal(type == ConsoleValueType::cvNone, "Attempted to access ConsoleValue when it has no value!");
|
||||
if (type == ConsoleValueType::cvFloat)
|
||||
return f;
|
||||
if (type == ConsoleValueType::cvInteger)
|
||||
|
|
@ -236,7 +233,6 @@ public:
|
|||
|
||||
TORQUE_FORCEINLINE S64 getInt() const
|
||||
{
|
||||
AssertFatal(type == ConsoleValueType::cvNone, "Attempted to access ConsoleValue when it has no value!");
|
||||
if (type == ConsoleValueType::cvInteger)
|
||||
return i;
|
||||
if (type == ConsoleValueType::cvFloat)
|
||||
|
|
@ -248,7 +244,6 @@ public:
|
|||
|
||||
TORQUE_FORCEINLINE const char* getString() const
|
||||
{
|
||||
AssertFatal(type == ConsoleValueType::cvNone, "Attempted to access ConsoleValue when it has no value!");
|
||||
if (isStringType())
|
||||
return s;
|
||||
if (isNumberType())
|
||||
|
|
@ -263,7 +258,6 @@ public:
|
|||
|
||||
TORQUE_FORCEINLINE bool getBool() const
|
||||
{
|
||||
AssertFatal(type == ConsoleValueType::cvNone, "Attempted to access ConsoleValue when it has no value!");
|
||||
if (type == ConsoleValueType::cvInteger)
|
||||
return (bool)i;
|
||||
if (type == ConsoleValueType::cvFloat)
|
||||
|
|
@ -275,7 +269,6 @@ public:
|
|||
|
||||
TORQUE_FORCEINLINE void setFloat(const F64 val)
|
||||
{
|
||||
AssertFatal(type == ConsoleValueType::cvNone, "Attempted to access ConsoleValue when it has no value!");
|
||||
cleanupData();
|
||||
type = ConsoleValueType::cvFloat;
|
||||
f = val;
|
||||
|
|
@ -290,11 +283,17 @@ public:
|
|||
|
||||
TORQUE_FORCEINLINE void setString(const char* val)
|
||||
{
|
||||
setString(val, dStrlen(val));
|
||||
setString(val, dStrlen(val) + 1);
|
||||
}
|
||||
|
||||
TORQUE_FORCEINLINE void setString(const char* val, S32 len)
|
||||
{
|
||||
if (len == 0)
|
||||
{
|
||||
setEmptyString();
|
||||
return;
|
||||
}
|
||||
|
||||
cleanupData();
|
||||
|
||||
type = ConsoleValueType::cvString;
|
||||
|
|
@ -318,6 +317,11 @@ public:
|
|||
s = const_cast<char*>(val);
|
||||
}
|
||||
|
||||
TORQUE_FORCEINLINE void setEmptyString()
|
||||
{
|
||||
setStringTableEntry(StringTable->EmptyString());
|
||||
}
|
||||
|
||||
TORQUE_FORCEINLINE void setConsoleData(S32 consoleType, void* dataPtr, const EnumTable* enumTable)
|
||||
{
|
||||
cleanupData();
|
||||
|
|
|
|||
|
|
@ -633,6 +633,10 @@ void ExprEvalState::pushFrame(StringTableEntry frameName, Namespace *ns, S32 reg
|
|||
|
||||
AssertFatal(!newFrame.getCount(), "ExprEvalState::pushFrame - Dictionary not empty!");
|
||||
|
||||
ConsoleValue* consoleValArray = new ConsoleValue[registerCount];
|
||||
localStack.push_back(ConsoleValueFrame(consoleValArray, false));
|
||||
currentRegisterArray = &localStack.last();
|
||||
|
||||
#ifdef DEBUG_SPEW
|
||||
validate();
|
||||
#endif
|
||||
|
|
@ -653,6 +657,13 @@ void ExprEvalState::popFrame()
|
|||
stack[mStackDepth]->reset();
|
||||
currentVariable = NULL;
|
||||
|
||||
const ConsoleValueFrame& frame = localStack.last();
|
||||
localStack.pop_back();
|
||||
if (!frame.isReference)
|
||||
delete[] frame.values;
|
||||
|
||||
currentRegisterArray = localStack.size() ? &localStack.last() : NULL;
|
||||
|
||||
#ifdef DEBUG_SPEW
|
||||
validate();
|
||||
#endif
|
||||
|
|
@ -1296,7 +1307,7 @@ ConsoleValue Namespace::Entry::execute(S32 argc, ConsoleValue *argv, ExprEvalSta
|
|||
case StringCallbackType:
|
||||
{
|
||||
const char* str = cb.mStringCallbackFunc(state->thisObject, argc, argv);
|
||||
result.setString(str, dStrlen(str));
|
||||
result.setString(str);
|
||||
break;
|
||||
}
|
||||
case IntCallbackType:
|
||||
|
|
|
|||
|
|
@ -372,7 +372,7 @@ public:
|
|||
return;
|
||||
}
|
||||
|
||||
value.setString(newValue, dStrlen(newValue));
|
||||
value.setString(newValue);
|
||||
|
||||
// Fire off the notification if we have one.
|
||||
if (notify)
|
||||
|
|
@ -456,6 +456,9 @@ struct ConsoleValueFrame
|
|||
ConsoleValue* values;
|
||||
bool isReference;
|
||||
|
||||
ConsoleValueFrame() : values(NULL), isReference(false)
|
||||
{}
|
||||
|
||||
ConsoleValueFrame(ConsoleValue* vals, bool isRef)
|
||||
{
|
||||
values = vals;
|
||||
|
|
|
|||
|
|
@ -171,11 +171,11 @@ inline void EngineMarshallData( F32 arg, S32& argc, ConsoleValue *argv )
|
|||
}
|
||||
inline void EngineMarshallData( const char* arg, S32& argc, ConsoleValue *argv )
|
||||
{
|
||||
argv[ argc++ ].setString(arg, dStrlen(arg));
|
||||
argv[ argc++ ].setString(arg);
|
||||
}
|
||||
inline void EngineMarshallData( char* arg, S32& argc, ConsoleValue *argv )
|
||||
{
|
||||
argv[ argc++ ].setString(arg, dStrlen(arg));
|
||||
argv[ argc++ ].setString(arg);
|
||||
}
|
||||
|
||||
template< typename T >
|
||||
|
|
@ -1232,7 +1232,7 @@ public:
|
|||
if (Con::isMainThread())
|
||||
{
|
||||
ConsoleStackFrameSaver sav; sav.save();
|
||||
mArgv[ 0 ].setString(simCB, dStrlen(simCB));
|
||||
mArgv[ 0 ].setString(simCB);
|
||||
|
||||
Helper::marshallEach(mArgc, mArgv, args...);
|
||||
|
||||
|
|
@ -1243,7 +1243,7 @@ public:
|
|||
SimConsoleThreadExecCallback cb;
|
||||
SimConsoleThreadExecEvent *evt = new SimConsoleThreadExecEvent(mArgc+sizeof...(ArgTs), NULL, true, &cb);
|
||||
evt->populateArgs(mArgv);
|
||||
mArgv[ 0 ].setString(simCB, dStrlen(simCB));
|
||||
mArgv[ 0 ].setString(simCB);
|
||||
|
||||
Helper::marshallEach(mArgc, mArgv, args...);
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ SimConsoleEvent::SimConsoleEvent(S32 argc, ConsoleValue *argv, bool onObject)
|
|||
{
|
||||
if (argv)
|
||||
{
|
||||
mArgv->setString(argv[i].getString(), dStrlen(argv[i].getString()));
|
||||
mArgv->setString(argv[i].getString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -92,7 +92,7 @@ void SimConsoleEvent::populateArgs(ConsoleValue *argv)
|
|||
{
|
||||
for (U32 i=0; i<mArgc; i++)
|
||||
{
|
||||
argv[i].setString(mArgv[i].getString(), dStrlen(mArgv[i].getString()));
|
||||
argv[i].setString(mArgv[i].getString());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -111,7 +111,7 @@ SimConsoleThreadExecCallback::~SimConsoleThreadExecCallback()
|
|||
void SimConsoleThreadExecCallback::handleCallback(ConsoleValue ret)
|
||||
{
|
||||
// can we move this pls?
|
||||
retVal.setString(ret.getString(), dStrlen(ret.getString()));
|
||||
retVal.setString(ret.getString());
|
||||
sem->release();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -388,8 +388,6 @@ SimObject* findObject(const char* name)
|
|||
|
||||
SimObject* findObject(const ConsoleValue &val)
|
||||
{
|
||||
if (val.getType() == ConsoleValueType::cvNone)
|
||||
return NULL;
|
||||
if (val.getType() == ConsoleValueType::cvInteger)
|
||||
return findObject((SimObjectId)val.getInt());
|
||||
return findObject(val.getString());
|
||||
|
|
@ -397,8 +395,6 @@ SimObject* findObject(const ConsoleValue &val)
|
|||
|
||||
SimObject* findObject(ConsoleValue* val)
|
||||
{
|
||||
if (val->getType() == ConsoleValueType::cvNone)
|
||||
return NULL;
|
||||
if (val->getType() == ConsoleValueType::cvInteger)
|
||||
return findObject((SimObjectId)val->getInt());
|
||||
return findObject(val->getString());
|
||||
|
|
|
|||
|
|
@ -2962,7 +2962,7 @@ DefineEngineStringlyVariadicMethod( SimObject, call, const char*, 3, 0, "( strin
|
|||
"@param args Zero or more arguments for the method.\n"
|
||||
"@return The result of the method call." )
|
||||
{
|
||||
argv[1].setString(argv[2], dStrlen(argv[2]));
|
||||
argv[1].setString(argv[2]);
|
||||
return Con::execute( object, argc - 1, argv + 1 );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ void StringStack::setIntValue(U32 i)
|
|||
void StringStack::setFloatValue(F64 v)
|
||||
{
|
||||
validateBufferSize(mStart + 32);
|
||||
dSprintf(mBuffer + mStart, 32, "%g", v);
|
||||
dSprintf(mBuffer + mStart, 32, "%.9g", v);
|
||||
mLen = dStrlen(mBuffer + mStart);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -138,16 +138,6 @@ struct StringStack
|
|||
return mBuffer + mStartOffsets[mStartStackSize-1];
|
||||
}
|
||||
|
||||
inline StringStackPtr getStringValuePtr()
|
||||
{
|
||||
return (getStringValue() - mBuffer);
|
||||
}
|
||||
|
||||
inline StringStackPtr getPreviousStringValuePtr()
|
||||
{
|
||||
return (getPreviousStringValue() - mBuffer);
|
||||
}
|
||||
|
||||
/// Advance the start stack, placing a zero length string on the top.
|
||||
///
|
||||
/// @note You should use StringStack::push, not this, if you want to
|
||||
|
|
@ -184,9 +174,6 @@ struct StringStack
|
|||
void popFrame();
|
||||
|
||||
void clearFrames();
|
||||
|
||||
/// Get the arguments for a function call from the stack.
|
||||
void getArgcArgv(StringTableEntry name, U32 *argc, const char ***in_argv, bool popStackFrame = false);
|
||||
};
|
||||
|
||||
extern StringStack STR;
|
||||
|
|
|
|||
Loading…
Reference in a new issue