@@ -336,29 +336,32 @@ auto TaskJudger::traditionalTaskPrepare() -> bool {
336336void TaskJudger::judgeIt () {
337337 qDebug () << " Start Judging" ;
338338 emit taskJudgingStarted (task->getProblemTitle ());
339- judge ();
340- contestant->setCheckJudged (taskId, true );
341- contestant->setCompileMessage (taskId, compileMessage);
342- contestant->setCompileState (taskId, compileState);
343- contestant->setResult (taskId, result);
344- contestant->setMessage (taskId, message);
345- contestant->setTimeUsed (taskId, timeUsed);
346- contestant->setMemoryUsed (taskId, memoryUsed);
347- contestant->setScore (taskId, score);
348- contestant->setInputFiles (taskId, inputFiles);
349- contestant->setSourceFile (taskId, sourceFile);
339+ if (judge ()) {
340+ contestant->setCheckJudged (taskId, true );
341+ contestant->setCompileMessage (taskId, compileMessage);
342+ contestant->setCompileState (taskId, compileState);
343+ contestant->setResult (taskId, result);
344+ contestant->setMessage (taskId, message);
345+ contestant->setTimeUsed (taskId, timeUsed);
346+ contestant->setMemoryUsed (taskId, memoryUsed);
347+ contestant->setScore (taskId, score);
348+ contestant->setInputFiles (taskId, inputFiles);
349+ contestant->setSourceFile (taskId, sourceFile);
350+ } else {
351+ contestant->setCheckJudged (taskId, false );
352+ }
350353 emit judgeFinished ();
351354}
352355
353- void TaskJudger::judge () {
356+ int TaskJudger::judge () {
354357 isJudging = 1 ;
355358 QString contestantName = contestant->getContestantName ();
356359 if (! temporaryDir.isValid ())
357- return ;
360+ return 0 ;
358361
359362 if (task->getTaskType () != Task::AnswersOnly)
360363 if (! traditionalTaskPrepare ())
361- return ;
364+ return 0 ;
362365
363366 for (int i = 0 ; i < task->getTestCaseList ().size (); i++) {
364367 timeUsed.append (QList<int >());
@@ -385,7 +388,7 @@ void TaskJudger::judge() {
385388
386389 QCoreApplication::processEvents ();
387390 if (! isJudging) {
388- return ;
391+ return 0 ;
389392 }
390393
391394 auto curTestCase = task->getTestCase (i);
@@ -490,7 +493,7 @@ void TaskJudger::judge() {
490493 QCoreApplication::processEvents ();
491494 if (! isJudging) {
492495 delete thread;
493- return ;
496+ return 0 ;
494497 }
495498
496499 while (thread->getNeedRejudge () && thread->getJudgeTimes () != settings->getRejudgeTimes () + 1 &&
@@ -528,17 +531,7 @@ void TaskJudger::judge() {
528531 }
529532 }
530533
531- /* TaskResult taskResult;
532- taskResult.compileMessage = compileMessage;
533- taskResult.compileState = compileState;
534- taskResult.resultState = result;
535- taskResult.resultMessage = message;
536- taskResult.timeUsed = timeUsed;
537- taskResult.memoryUsed = memoryUsed;
538- taskResult.scores = score;
539- taskResult.inputFiles = inputFiles;
540- taskResult.sourceFile = sourceFile;
541- emit judgeFinished(taskResult); */
534+ return 1 ;
542535}
543536
544537void TaskJudger::makeDialogAlert (QString msg) { emit dialogAlert (std::move (msg)); }
0 commit comments