MCPcopy Create free account
hub / github.com/GarageGames/Torque2D / evaluateExpression

Method evaluateExpression

engine/source/debug/telnetDebugger.cc:815–842  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

813}
814
815void TelnetDebugger::evaluateExpression(const char *tag, S32 frame, const char *evalBuffer)
816{
817 // Make sure we're passing a valid frame to the eval.
818 if ( frame > gEvalState.stack.size() )
819 frame = gEvalState.stack.size() - 1;
820 if ( frame < 0 )
821 frame = 0;
822
823 // Build a buffer just big enough for this eval.
824 const char* format = "return %s;";
825 dsize_t len = dStrlen( format ) + dStrlen( evalBuffer );
826 char* buffer = new char[ len ];
827 dSprintf( buffer, len, format, evalBuffer );
828
829 // Execute the eval.
830 CodeBlock *newCodeBlock = new CodeBlock();
831 const char* result = newCodeBlock->compileExec( NULL, buffer, false, frame );
832 delete [] buffer;
833
834 // Create a new buffer that fits the result.
835 format = "EVALOUT %s %s\r\n";
836 len = dStrlen( format ) + dStrlen( tag ) + dStrlen( result );
837 buffer = new char[ len ];
838 dSprintf( buffer, len, format, tag, result[0] ? result : "\"\"" );
839
840 send( buffer );
841 delete [] buffer;
842}
843
844void TelnetDebugger::dumpFileList()
845{

Callers

nothing calls this directly

Calls 4

compileExecMethod · 0.80
dStrlenFunction · 0.50
dSprintfFunction · 0.50
sizeMethod · 0.45

Tested by

no test coverage detected