From 9c6a7152ae4146efb5bc59c8168c0afef2806430 Mon Sep 17 00:00:00 2001 From: Robert Karszniewicz Date: Sun, 22 Nov 2020 16:14:42 +0100 Subject: [PATCH] utox: update to 0.18.0. --- ...en-changing-toxcore-related-settings.patch | 149 ------------------ srcpkgs/utox/template | 4 +- 2 files changed, 2 insertions(+), 151 deletions(-) delete mode 100644 srcpkgs/utox/patches/0001-Fix-crash-when-changing-toxcore-related-settings.patch diff --git a/srcpkgs/utox/patches/0001-Fix-crash-when-changing-toxcore-related-settings.patch b/srcpkgs/utox/patches/0001-Fix-crash-when-changing-toxcore-related-settings.patch deleted file mode 100644 index 833b6e29dc3..00000000000 --- a/srcpkgs/utox/patches/0001-Fix-crash-when-changing-toxcore-related-settings.patch +++ /dev/null @@ -1,149 +0,0 @@ -From c034ec9fffe79d46503dbb2686fec113bea2d08b Mon Sep 17 00:00:00 2001 -From: avoidr -Date: Sat, 11 Jul 2020 05:18:22 +0200 -Subject: [PATCH] Fix crash when changing toxcore-related settings - -uTox killed toxcore without killing toxav first, which led to a crash. -Resources should be deallocated in reverse order of their allocation. - -utox_av_ctrl_thread was started only once, when uTox was started, so -when toxav was killed properly, the thread was never re-created for the -next use of Tox. utox_av_ctrl_thread is now created whenever a new -toxcore starts. - -Then, the Filter_Audio pointer had to be set to NULL after it's free'd, -otherwise it wouldn't get re-initialised, and an invalid pointer would -be passed to kill_filter_audio(), causing a crash. - -Finally, replaced magic number 0 with TOX_KILL. -Deleted a redundant `toxav_thread_msg = false`. ---- - src/av/audio.c | 1 + - src/av/utox_av.c | 7 ++----- - src/main.c | 3 --- - src/tox.c | 20 +++++++++++--------- - 4 files changed, 14 insertions(+), 17 deletions(-) - -diff --git a/src/av/audio.c b/src/av/audio.c -index 324ceb22..d4384d8b 100644 ---- a/src/av/audio.c -+++ b/src/av/audio.c -@@ -909,6 +909,7 @@ void utox_audio_thread(void *args) { - } - - utox_filter_audio_kill(f_a); -+ f_a = NULL; - - // missing some cleanup ? - alDeleteSources(1, &ringtone); -diff --git a/src/av/utox_av.c b/src/av/utox_av.c -index 90e04b36..d7adb9ce 100644 ---- a/src/av/utox_av.c -+++ b/src/av/utox_av.c -@@ -275,7 +275,6 @@ void utox_av_ctrl_thread(void *UNUSED(args)) { - } - } - } -- - toxav_thread_msg = false; - - if (av) { -@@ -286,19 +285,17 @@ void utox_av_ctrl_thread(void *UNUSED(args)) { - } - } - -- - postmessage_audio(UTOXAUDIO_KILL, 0, 0, NULL); - postmessage_video(UTOXVIDEO_KILL, 0, 0, NULL); -- - // Wait for all a/v threads to return 0 - while (utox_audio_thread_init || utox_video_thread_init) { - yieldcpu(1); - } - -- toxav_thread_msg = false; -+ toxav_kill(av); -+ - utox_av_ctrl_init = false; - -- toxav_kill(av); - LOG_NOTE("UTOXAV", "Clean thread exit!"); - return; - } -diff --git a/src/main.c b/src/main.c -index a3072edf..39218062 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -269,9 +269,6 @@ void utox_init(void) { - if (settings.curr_version != settings.last_version) { - settings.show_splash = true; - } -- -- // We likely want to start this on every system. -- thread(utox_av_ctrl_thread, NULL); - } - - void utox_raze(void) { -diff --git a/src/tox.c b/src/tox.c -index 8d93ee19..e9fe3ae8 100644 ---- a/src/tox.c -+++ b/src/tox.c -@@ -234,10 +234,8 @@ void tox_settingschanged(void) { - dropdown_list_clear(&dropdown_audio_out); - dropdown_list_clear(&dropdown_video); - -- // send the reconfig message! -- postmessage_toxcore(0, 1, 0, NULL); -- - LOG_NOTE("Toxcore", "Restarting Toxcore"); -+ postmessage_toxcore(TOX_KILL, 1, 0, NULL); // send the reconfig message! - while (!tox_thread_init) { - yieldcpu(1); - } -@@ -476,8 +474,8 @@ void toxcore_thread(void *UNUSED(args)) { - // avoid trying the creation of thousands of tox instances before user changes the settings - if (tox_thread_msg) { - TOX_MSG *msg = &tox_msg; -- // If msg->msg is 0, reconfig -- if (!msg->msg) { -+ -+ if (msg->msg == TOX_KILL) { - reconfig = (bool) msg->param1; - tox_thread_init = UTOX_TOX_THREAD_INIT_NONE; - } -@@ -513,6 +511,7 @@ void toxcore_thread(void *UNUSED(args)) { - postmessage_utox(UPDATE_TRAY, 0, 0, NULL); - postmessage_utox(PROFILE_DID_LOAD, 0, 0, NULL); - -+ thread(utox_av_ctrl_thread, NULL); - postmessage_utoxav(UTOXAV_NEW_TOX_INSTANCE, 0, 0, av); - } - -@@ -548,9 +547,9 @@ void toxcore_thread(void *UNUSED(args)) { - // If there's a message, load it, and send to the tox message thread - if (tox_thread_msg) { - TOX_MSG *msg = &tox_msg; -- // If msg->msg is 0, reconfig if needed and break from tox_do -- if (!msg->msg) { -- reconfig = msg->param1; -+ -+ if (msg->msg == TOX_KILL) { -+ reconfig = msg->param1; // reconfig if needed - tox_thread_msg = 0; - tox_thread_init = UTOX_TOX_THREAD_INIT_NONE; - break; -@@ -574,7 +573,10 @@ void toxcore_thread(void *UNUSED(args)) { - write_save(tox); - edit_setstr(&edit_profile_password, (char *)"", 0); - -- // Stop toxcore. -+ postmessage_utoxav(UTOXAV_KILL, 0, 0, NULL); -+ while (utox_av_ctrl_init) { -+ yieldcpu(1); -+ } - LOG_TRACE("Toxcore", "tox thread ending"); - tox_kill(tox); - } --- -2.26.2 - diff --git a/srcpkgs/utox/template b/srcpkgs/utox/template index 20f7f8c209d..df31ce2297a 100644 --- a/srcpkgs/utox/template +++ b/srcpkgs/utox/template @@ -1,7 +1,7 @@ # Template file for 'utox' pkgname=utox -version=0.17.2 -revision=2 +version=0.18.0 +revision=1 wrksrc=uTox build_style=cmake configure_args="-DENABLE_ASAN=OFF"