diff options
| author | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2025-09-16 19:44:45 +0300 |
|---|---|---|
| committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2025-09-16 21:27:58 +0300 |
| commit | 892fb2d6e2ffc92636f381d3e817f9c5a71657dc (patch) | |
| tree | f821019fd4083358c1f58d807a41cb0f12f894ba | |
| parent | 6e24218680c15bbf2c7529cb23481a1e39888ca9 (diff) | |
#4651 Fix marker presence check
| -rw-r--r-- | indra/newview/llappviewer.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llappviewer.h | 1 | ||||
| -rw-r--r-- | indra/newview/llappviewerwin32.cpp | 15 |
3 files changed, 13 insertions, 9 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 253c1268d3..62a1aa9fb6 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -5403,6 +5403,12 @@ void LLAppViewer::createErrorMarker(eLastExecEvent error_code) const } } +bool LLAppViewer::errorMarkerExists() const +{ + std::string error_marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, ERROR_MARKER_FILE_NAME); + return LLAPRFile::isExist(error_marker_file, NULL, LL_APR_RB); +} + void LLAppViewer::outOfMemorySoftQuit() { if (!mQuitRequested) diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index 24d55a00fe..fdaa14a77d 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -250,6 +250,7 @@ public: // Writes an error code into the error_marker file for use on next startup. void createErrorMarker(eLastExecEvent error_code) const; + bool errorMarkerExists() const; // Attempt a 'soft' quit with disconnect and saving of settings/cache. // Intended to be thread safe. diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index c29c9a4919..929cb8b4d5 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -173,16 +173,13 @@ namespace << '/' << loc.mV[2]))); } - if (!LLAppViewer::instance()->isSecondInstance()) + LLAppViewer* app = LLAppViewer::instance(); + if (!app->isSecondInstance() && !app->errorMarkerExists()) { - std::string error_marker_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, ERROR_MARKER_FILE_NAME); - if (!LLAPRFile::isExist(error_marker_file, NULL, LL_APR_RB)) - { - // If marker doesn't exist, create a marker with 'other' code for next launch - // otherwise don't override existing file - // Any unmarked crashes will be considered as freezes - LLAppViewer::instance()->createErrorMarker(LAST_EXEC_OTHER_CRASH); - } + // If marker doesn't exist, create a marker with 'other' code for next launch + // otherwise don't override existing file + // Any unmarked crashes will be considered as freezes + app->createErrorMarker(LAST_EXEC_OTHER_CRASH); } } // MDSCB_EXCEPTIONCODE |
