Sfoglia il codice sorgente

fix for issue #953, courtesy of @jamesu. trace buffer was truncating values.

Azaezel 10 anni fa
parent
commit
1c4cc888f8
1 ha cambiato i file con 4 aggiunte e 4 eliminazioni
  1. 4 4
      Engine/source/console/compiledEval.cpp

+ 4 - 4
Engine/source/console/compiledEval.cpp

@@ -470,10 +470,10 @@ ConsoleValueRef CodeBlock::exec(U32 ip, const char *functionName, Namespace *thi
             dSprintf(traceBuffer + dStrlen(traceBuffer), sizeof(traceBuffer) - dStrlen(traceBuffer),
                "%s(", thisFunctionName);
          }
-         for(i = 0; i < argc; i++)
+		 for (i = 0; i < wantedArgc; i++)
          {
             dStrcat(traceBuffer, argv[i+1]);
-            if(i != argc - 1)
+			if (i != wantedArgc - 1)
                dStrcat(traceBuffer, ", ");
          }
          dStrcat(traceBuffer, ")");
@@ -1817,7 +1817,7 @@ breakContinue:
                ConsoleValueRef ret;
                if(nsEntry->mFunctionOffset)
                   ret = nsEntry->mCode->exec(nsEntry->mFunctionOffset, fnName, nsEntry->mNamespace, callArgc, callArgv, false, nsEntry->mPackage);
-
+ 
                STR.popFrame();
                // Functions are assumed to return strings, so look ahead to see if we can skip the conversion
                if(code[ip] == OP_STR_TO_UINT)
@@ -1837,7 +1837,7 @@ breakContinue:
                }
                else
                   STR.setStringValue((const char*)ret);
-			   
+                           
                // This will clear everything including returnValue
                CSTK.popFrame();
                STR.clearFunctionOffset();