mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-04-02 05:27:41 -05:00
fix: Reset terminate handler directly when being called + some other crashes to crash handling (#1174)
This PR fixes some things about crash handling: - when the terminate handler is called, immediately set it back to the original one, so can't make a recursion if the crash-handling code fails - Only save projects if the crash occured after Imhex finished startup - do not update the project location when saving the crash backup file: this will remove problems when `EventAbnormalTermination` is called before `crashCallback()` I also added a bit more documentation
This commit is contained in:
@@ -17,11 +17,11 @@ namespace hex {
|
||||
std::fs::path ProjectFile::s_currProjectPath;
|
||||
|
||||
std::function<bool(const std::fs::path&)> ProjectFile::s_loadProjectFunction;
|
||||
std::function<bool(std::optional<std::fs::path>)> ProjectFile::s_storeProjectFunction;
|
||||
std::function<bool(std::optional<std::fs::path>, bool)> ProjectFile::s_storeProjectFunction;
|
||||
|
||||
void ProjectFile::setProjectFunctions(
|
||||
const std::function<bool(const std::fs::path&)> &loadFun,
|
||||
const std::function<bool(std::optional<std::fs::path>)> &storeFun
|
||||
const std::function<bool(std::optional<std::fs::path>, bool)> &storeFun
|
||||
) {
|
||||
ProjectFile::s_loadProjectFunction = loadFun;
|
||||
ProjectFile::s_storeProjectFunction = storeFun;
|
||||
@@ -31,8 +31,8 @@ namespace hex {
|
||||
return s_loadProjectFunction(filePath);
|
||||
}
|
||||
|
||||
bool ProjectFile::store(std::optional<std::fs::path> filePath) {
|
||||
return s_storeProjectFunction(filePath);
|
||||
bool ProjectFile::store(std::optional<std::fs::path> filePath, bool updateLocation) {
|
||||
return s_storeProjectFunction(filePath, updateLocation);
|
||||
}
|
||||
|
||||
bool ProjectFile::hasPath() {
|
||||
|
||||
Reference in New Issue
Block a user