summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Heinlein <keytoaster@gentoo.org>2007-08-10 20:05:19 +0000
committerTobias Heinlein <keytoaster@gentoo.org>2007-08-10 20:05:19 +0000
commit36d50beaaa08da4a89d0db80ea174a74a4b3c8aa (patch)
tree7726268244b0ce5cf9971deab5009af714dfceaf /net-p2p/ktorrent/files
parentfix bug #188109. remove old version (diff)
downloadgentoo-2-36d50beaaa08da4a89d0db80ea174a74a4b3c8aa.tar.gz
gentoo-2-36d50beaaa08da4a89d0db80ea174a74a4b3c8aa.tar.bz2
gentoo-2-36d50beaaa08da4a89d0db80ea174a74a4b3c8aa.zip
Adding a patch to fix a crash, see bug 187977
Diffstat (limited to 'net-p2p/ktorrent/files')
-rw-r--r--net-p2p/ktorrent/files/ktorrent-2.2.1-fix-wait-job-crash.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/net-p2p/ktorrent/files/ktorrent-2.2.1-fix-wait-job-crash.patch b/net-p2p/ktorrent/files/ktorrent-2.2.1-fix-wait-job-crash.patch
new file mode 100644
index 000000000000..155337f059ed
--- /dev/null
+++ b/net-p2p/ktorrent/files/ktorrent-2.2.1-fix-wait-job-crash.patch
@@ -0,0 +1,56 @@
+diff -Naru ktorrent_old/apps/ktorrent/ktorrentcore.cpp ktorrent_new/apps/ktorrent/ktorrentcore.cpp
+--- ktorrent_old/apps/ktorrent/ktorrentcore.cpp 2007-07-23 12:43:11.000000000 -0400
++++ ktorrent_new/apps/ktorrent/ktorrentcore.cpp 2007-08-07 00:44:13.000000000 -0400
+@@ -1,5 +1,5 @@
+ /***************************************************************************
+- * Copyright (C) 2005 by *
++ * copyright (C) 2005 by *
+ * Joris Guisson <joris.guisson@gmail.com> *
+ * Ivan Vasic <ivasic@gmail.com> *
+ * *
+@@ -593,9 +593,7 @@
+ qman->onExit(job);
+ // wait for completion of stopped events
+ if (job->needToWait())
+- {
+ WaitJob::execute(job);
+- }
+ else
+ delete job;
+
+diff -Naru ktorrent_old/libktorrent/pluginmanager.cpp ktorrent_new/libktorrent/pluginmanager.cpp
+--- ktorrent_old/libktorrent/pluginmanager.cpp 2007-07-23 12:43:10.000000000 -0400
++++ ktorrent_new/libktorrent/pluginmanager.cpp 2007-08-07 00:46:55.000000000 -0400
+@@ -125,12 +125,13 @@
+ p->shutdown(wjob);
+ if (wjob->needToWait())
+ bt::WaitJob::execute(wjob);
++ else
++ delete wjob;
+ }
+ catch (Error & err)
+ {
+ Out(SYS_GEN|LOG_NOTICE) << "Error when unloading plugin: " << err.toString() << endl;
+ }
+- delete wjob;
+
+ gui->removePluginGui(p);
+ p->unload();
+@@ -174,14 +175,16 @@
+ p->shutdown(wjob);
+ i++;
+ }
++
+ if (wjob->needToWait())
+ bt::WaitJob::execute(wjob);
++ else
++ delete wjob;
+ }
+ catch (Error & err)
+ {
+ Out(SYS_GEN|LOG_NOTICE) << "Error when unloading all plugins: " << err.toString() << endl;
+ }
+- delete wjob;
+
+ // then unload them
+ bt::PtrMap<QString,Plugin>::iterator i = plugins.begin();