[Scummvm-git-logs] scummvm master -> 926d5fd0b709152ebab7d8de19dc89b38d74042f
bluegr
noreply at scummvm.org
Sun Mar 17 11:58:14 UTC 2024
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
198e346bf8 Revert "AMIGAOS: Cleanup and free signals via atexit()"
926d5fd0b7 AMIGAOS: Cleanup and free signals via atexit(), 2nd attempt
Commit: 198e346bf8f28a83fdbe1604a9d19f848ceda7cb
https://github.com/scummvm/scummvm/commit/198e346bf8f28a83fdbe1604a9d19f848ceda7cb
Author: Hubert Maier (raziel- at users.noreply.github.com)
Date: 2024-03-17T13:58:10+02:00
Commit Message:
Revert "AMIGAOS: Cleanup and free signals via atexit()"
This reverts commit e7fa1613861556bdae2195351a1189f0df6c1e8f.
The change sometimes caused ISI crashes on "normal" quits of ScummVM.
Changed paths:
backends/platform/sdl/amigaos/amigaos-main.cpp
diff --git a/backends/platform/sdl/amigaos/amigaos-main.cpp b/backends/platform/sdl/amigaos/amigaos-main.cpp
index 71a63177113..7a5dddf6772 100644
--- a/backends/platform/sdl/amigaos/amigaos-main.cpp
+++ b/backends/platform/sdl/amigaos/amigaos-main.cpp
@@ -28,10 +28,6 @@
#include "backends/plugins/sdl/sdl-provider.h"
#include "base/main.h"
-static void cleanup() {
- g_system->destroy();
-}
-
int main(int argc, char *argv[]) {
// Update support (AmiUpdate):
@@ -67,9 +63,6 @@ int main(int argc, char *argv[]) {
g_system = new OSystem_AmigaOS();
assert(g_system);
- // Register cleanup function to avoid unfreed signals
- atexit(cleanup);
-
// Pre-initialize the backend.
g_system->init();
@@ -81,8 +74,7 @@ int main(int argc, char *argv[]) {
int res = scummvm_main(argc, argv);
// Free OSystem.
- // This is now handled by cleanup() via atexit()
- //g_system->destroy();
+ g_system->destroy();
return res;
}
Commit: 926d5fd0b709152ebab7d8de19dc89b38d74042f
https://github.com/scummvm/scummvm/commit/926d5fd0b709152ebab7d8de19dc89b38d74042f
Author: PushmePullyu (127053144+PushmePullyu at users.noreply.github.com)
Date: 2024-03-17T13:58:10+02:00
Commit Message:
AMIGAOS: Cleanup and free signals via atexit(), 2nd attempt
Second attempt at fixing #6956
"ScummVM returned with unfreed signals (AmigaOS4)"
This only runs the cleanup code if the OSystem_AmigaOS
instance has not been destroyed already.
Changed paths:
backends/platform/sdl/amigaos/amigaos.cpp
backends/platform/sdl/amigaos/amigaos.h
diff --git a/backends/platform/sdl/amigaos/amigaos.cpp b/backends/platform/sdl/amigaos/amigaos.cpp
index 2fd1d7f02aa..ca3e99af216 100644
--- a/backends/platform/sdl/amigaos/amigaos.cpp
+++ b/backends/platform/sdl/amigaos/amigaos.cpp
@@ -27,7 +27,22 @@
#include "backends/fs/amigaos/amigaos-fs-factory.h"
#include "backends/dialogs/amigaos/amigaos-dialogs.h"
+static bool cleanupDone = false;
+
+static void cleanup() {
+ if (!cleanupDone)
+ g_system->destroy();
+}
+
+OSystem_AmigaOS::~OSystem_AmigaOS() {
+ cleanupDone = true;
+}
+
void OSystem_AmigaOS::init() {
+ // Register cleanup function to avoid unfreed signals
+ if (atexit(cleanup))
+ warning("Failed to register cleanup function via atexit()");
+
// Initialize File System Factory
_fsFactory = new AmigaOSFilesystemFactory();
diff --git a/backends/platform/sdl/amigaos/amigaos.h b/backends/platform/sdl/amigaos/amigaos.h
index 32cb85f8d30..616aee02cd3 100644
--- a/backends/platform/sdl/amigaos/amigaos.h
+++ b/backends/platform/sdl/amigaos/amigaos.h
@@ -27,7 +27,7 @@
class OSystem_AmigaOS : public OSystem_SDL {
public:
OSystem_AmigaOS() {}
- virtual ~OSystem_AmigaOS() {}
+ virtual ~OSystem_AmigaOS();
bool hasFeature(Feature f) override;
More information about the Scummvm-git-logs
mailing list