mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-04-02 13:37:42 -05:00
fix: Crash on Wayland when glfwTerminate() gets called more than once
This commit is contained in:
@@ -11,6 +11,12 @@
|
||||
namespace hex::init {
|
||||
|
||||
int runImHex() {
|
||||
// Initialize GLFW
|
||||
if (!glfwInit()) {
|
||||
log::fatal("Failed to initialize GLFW!");
|
||||
std::abort();
|
||||
}
|
||||
ON_SCOPE_EXIT { glfwTerminate(); };
|
||||
|
||||
bool shouldRestart = false;
|
||||
do {
|
||||
@@ -20,6 +26,7 @@
|
||||
shouldRestart = true;
|
||||
});
|
||||
|
||||
// Splash window
|
||||
{
|
||||
auto splashWindow = initializeImHex();
|
||||
// Draw the splash window while tasks are running
|
||||
@@ -29,19 +36,10 @@
|
||||
handleFileOpenRequest();
|
||||
}
|
||||
|
||||
// Main window
|
||||
{
|
||||
// Initialize GLFW
|
||||
if (!glfwInit()) {
|
||||
log::fatal("Failed to initialize GLFW!");
|
||||
std::abort();
|
||||
}
|
||||
ON_SCOPE_EXIT { glfwTerminate(); };
|
||||
|
||||
// Main window
|
||||
{
|
||||
Window window;
|
||||
window.loop();
|
||||
}
|
||||
Window window;
|
||||
window.loop();
|
||||
|
||||
deinitializeImHex();
|
||||
}
|
||||
|
||||
@@ -425,11 +425,6 @@ namespace hex::init {
|
||||
log::error("GLFW Error [{}] : {}", errorCode, desc);
|
||||
});
|
||||
|
||||
if (!glfwInit()) {
|
||||
log::fatal("Failed to initialize GLFW!");
|
||||
std::exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
// Configure used OpenGL version
|
||||
#if defined(OS_MACOS)
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
||||
@@ -585,7 +580,6 @@ namespace hex::init {
|
||||
|
||||
void WindowSplash::exitGLFW() const {
|
||||
glfwDestroyWindow(m_window);
|
||||
glfwTerminate();
|
||||
}
|
||||
|
||||
void WindowSplash::exitImGui() const {
|
||||
|
||||
Reference in New Issue
Block a user