diff --git a/Engine/source/T3D/gameBase/gameConnection.cpp b/Engine/source/T3D/gameBase/gameConnection.cpp index bda2c1fda..d404976de 100644 --- a/Engine/source/T3D/gameBase/gameConnection.cpp +++ b/Engine/source/T3D/gameBase/gameConnection.cpp @@ -999,8 +999,10 @@ bool GameConnection::readDemoStartBlock(BitStream *stream) void GameConnection::demoPlaybackComplete() { - static ConsoleValueRef demoPlaybackArgv[1] = { "demoPlaybackComplete" }; - Sim::postCurrentEvent(Sim::getRootGroup(), new SimConsoleEvent(1, demoPlaybackArgv, false)); + static const char* demoPlaybackArgv[1] = { "demoPlaybackComplete" }; + static StringStackConsoleWrapper demoPlaybackCmd(1, demoPlaybackArgv); + + Sim::postCurrentEvent(Sim::getRootGroup(), new SimConsoleEvent(demoPlaybackCmd.argc, demoPlaybackCmd.argv, false)); Parent::demoPlaybackComplete(); } diff --git a/Engine/source/cinterface/c_scripting.cpp b/Engine/source/cinterface/c_scripting.cpp index db223aefd..1138cbc1c 100644 --- a/Engine/source/cinterface/c_scripting.cpp +++ b/Engine/source/cinterface/c_scripting.cpp @@ -76,9 +76,10 @@ extern "C" { if (!entry) return ""; - ConsoleValueRef argv[] = {"consoleExportXML"}; + static const char* exportArgv[1] = { "consoleExportXML" }; + static StringStackConsoleWrapper exportCmd(1, exportArgv); - return entry->cb.mStringCallbackFunc(NULL, 1, argv); + return entry->cb.mStringCallbackFunc(NULL, exportCmd.argc, exportCmd.argv); } MarshalNativeEntry* script_get_namespace_entry(const char* nameSpace, const char* name) diff --git a/Engine/source/console/console.cpp b/Engine/source/console/console.cpp index 81c460d79..deb177a5a 100644 --- a/Engine/source/console/console.cpp +++ b/Engine/source/console/console.cpp @@ -1534,9 +1534,16 @@ StringTableEntry getModNameFromPath(const char *path) void postConsoleInput( RawData data ) { // Schedule this to happen at the next time event. + ConsoleValue values[2]; ConsoleValueRef argv[2]; - argv[0] = "eval"; - argv[1] = ( const char* ) data.data; + + values[0].init(); + values[0].setStringValue("eval"); + values[1].init(); + values[1].setStringValue((const char*)data.data); + argv[0].value = &values[0]; + argv[1].value = &values[1]; + Sim::postCurrentEvent(Sim::getRootGroup(), new SimConsoleEvent(2, argv, false)); } @@ -1610,36 +1617,6 @@ ConsoleValueRef::ConsoleValueRef(const ConsoleValueRef &ref) value = ref.value; } -ConsoleValueRef::ConsoleValueRef(const char *newValue) : value(NULL) -{ - *this = newValue; -} - -ConsoleValueRef::ConsoleValueRef(const String &newValue) : value(NULL) -{ - *this = (const char*)(newValue.utf8()); -} - -ConsoleValueRef::ConsoleValueRef(U32 newValue) : value(NULL) -{ - *this = newValue; -} - -ConsoleValueRef::ConsoleValueRef(S32 newValue) : value(NULL) -{ - *this = newValue; -} - -ConsoleValueRef::ConsoleValueRef(F32 newValue) : value(NULL) -{ - *this = newValue; -} - -ConsoleValueRef::ConsoleValueRef(F64 newValue) : value(NULL) -{ - *this = newValue; -} - ConsoleValueRef& ConsoleValueRef::operator=(const ConsoleValueRef &newValue) { value = newValue.value; diff --git a/Engine/source/console/console.h b/Engine/source/console/console.h index 4ca0c8da8..ac62caf75 100644 --- a/Engine/source/console/console.h +++ b/Engine/source/console/console.h @@ -214,12 +214,6 @@ public: ~ConsoleValueRef() { ; } ConsoleValueRef(const ConsoleValueRef &ref); - ConsoleValueRef(const char *value); - ConsoleValueRef(const String &ref); - ConsoleValueRef(U32 value); - ConsoleValueRef(S32 value); - ConsoleValueRef(F32 value); - ConsoleValueRef(F64 value); static ConsoleValueRef fromValue(ConsoleValue *value) { ConsoleValueRef ref; ref.value = value; return ref; } diff --git a/Engine/source/console/simEvents.cpp b/Engine/source/console/simEvents.cpp index f564aa772..bc1e1789c 100644 --- a/Engine/source/console/simEvents.cpp +++ b/Engine/source/console/simEvents.cpp @@ -129,7 +129,7 @@ ConsoleValueRef SimConsoleThreadExecCallback::waitForResult() return retVal; } - return (const char*)NULL; + return ConsoleValueRef(); } //-----------------------------------------------------------------------------