[Scummvm-git-logs] scummvm branch-2-1 -> 5d6ece63b4c29f2bcba320ffc5702b954ebe05b2
antoniou79
antoniou at cti.gr
Tue Sep 24 13:50:51 CEST 2019
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
cb3f931442 ANDROID: Fix crash when exiting a game (Blade Runner)
9ba6d1550b ANDROID: Remove duplicate _system->quit() from JNI::Destroy()
5d6ece63b4 ANDROID: Use _system->destroy() instead of just delete in JNI::Destroy()
Commit: cb3f931442315c740f402186288b52cd19b5f8ef
https://github.com/scummvm/scummvm/commit/cb3f931442315c740f402186288b52cd19b5f8ef
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-09-24T14:38:27+03:00
Commit Message:
ANDROID: Fix crash when exiting a game (Blade Runner)
Changed paths:
backends/platform/android/android.cpp
backends/platform/android/jni.cpp
backends/platform/android/org/scummvm/scummvm/ScummVM.java
diff --git a/backends/platform/android/android.cpp b/backends/platform/android/android.cpp
index a5dedb0..5614d0a 100644
--- a/backends/platform/android/android.cpp
+++ b/backends/platform/android/android.cpp
@@ -126,6 +126,11 @@ OSystem_Android::~OSystem_Android() {
_timerManager = 0;
deleteMutex(_event_queue_lock);
+
+ delete _savefileManager;
+ _savefileManager = 0;
+
+ ModularBackend::quit();
}
void *OSystem_Android::timerThreadFunc(void *arg) {
diff --git a/backends/platform/android/jni.cpp b/backends/platform/android/jni.cpp
index 5e4c116..db91fc7 100644
--- a/backends/platform/android/jni.cpp
+++ b/backends/platform/android/jni.cpp
@@ -562,6 +562,7 @@ void JNI::destroy(JNIEnv *env, jobject self) {
delete _asset_archive;
_asset_archive = 0;
+ _system->quit();
delete _system;
g_system = 0;
_system = 0;
diff --git a/backends/platform/android/org/scummvm/scummvm/ScummVM.java b/backends/platform/android/org/scummvm/scummvm/ScummVM.java
index 2784623..8dd974b 100644
--- a/backends/platform/android/org/scummvm/scummvm/ScummVM.java
+++ b/backends/platform/android/org/scummvm/scummvm/ScummVM.java
@@ -141,11 +141,10 @@ public abstract class ScummVM implements SurfaceHolder.Callback, Runnable {
int res = main(_args);
- destroy();
-
deinitEGL();
deinitAudio();
+ destroy();
// On exit, tear everything down for a fresh restart next time.
System.exit(res);
}
Commit: 9ba6d1550b49de27e2a59d77f8c982996f06a88b
https://github.com/scummvm/scummvm/commit/9ba6d1550b49de27e2a59d77f8c982996f06a88b
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-09-24T14:38:39+03:00
Commit Message:
ANDROID: Remove duplicate _system->quit() from JNI::Destroy()
Since it is already called in Jni::main after scummvm_main() returns. The second call in destroy caused crashes on some devices.
Changed paths:
backends/platform/android/jni.cpp
diff --git a/backends/platform/android/jni.cpp b/backends/platform/android/jni.cpp
index db91fc7..5e4c116 100644
--- a/backends/platform/android/jni.cpp
+++ b/backends/platform/android/jni.cpp
@@ -562,7 +562,6 @@ void JNI::destroy(JNIEnv *env, jobject self) {
delete _asset_archive;
_asset_archive = 0;
- _system->quit();
delete _system;
g_system = 0;
_system = 0;
Commit: 5d6ece63b4c29f2bcba320ffc5702b954ebe05b2
https://github.com/scummvm/scummvm/commit/5d6ece63b4c29f2bcba320ffc5702b954ebe05b2
Author: Thanasis Antoniou (a.antoniou79 at gmail.com)
Date: 2019-09-24T14:38:51+03:00
Commit Message:
ANDROID: Use _system->destroy() instead of just delete in JNI::Destroy()
Changed paths:
backends/platform/android/android.cpp
backends/platform/android/jni.cpp
diff --git a/backends/platform/android/android.cpp b/backends/platform/android/android.cpp
index 5614d0a..7513639 100644
--- a/backends/platform/android/android.cpp
+++ b/backends/platform/android/android.cpp
@@ -129,8 +129,6 @@ OSystem_Android::~OSystem_Android() {
delete _savefileManager;
_savefileManager = 0;
-
- ModularBackend::quit();
}
void *OSystem_Android::timerThreadFunc(void *arg) {
diff --git a/backends/platform/android/jni.cpp b/backends/platform/android/jni.cpp
index 5e4c116..2c27838 100644
--- a/backends/platform/android/jni.cpp
+++ b/backends/platform/android/jni.cpp
@@ -562,9 +562,13 @@ void JNI::destroy(JNIEnv *env, jobject self) {
delete _asset_archive;
_asset_archive = 0;
- delete _system;
+ // _system is a pointer of OSystem_Android <--- ModularBackend <--- BaseBacked <--- Common::OSystem
+ // It's better to call destroy() rather than just delete here
+ // to avoid mutex issues if a Common::String is used after this point
+ _system->destroy();
+
g_system = 0;
- _system = 0;
+ _system = 0;
sem_destroy(&pause_sem);
More information about the Scummvm-git-logs
mailing list