diff options
author | Eric Hameleers <alien@slackware.com> | 2019-05-30 13:35:48 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2019-05-30 13:35:48 +0000 |
commit | dc82bdebb7f3ab59e0e5305ef08d88b6754e7ee4 (patch) | |
tree | 1d456402f8cd82ee951f61ce66ec22879e6d1d94 /evolvotron/build | |
parent | 1f3f2c22d7de15da4beab4bd4553947bfba492db (diff) | |
download | asb-dc82bdebb7f3ab59e0e5305ef08d88b6754e7ee4.tar.gz asb-dc82bdebb7f3ab59e0e5305ef08d88b6754e7ee4.tar.xz |
Initial revision
Diffstat (limited to 'evolvotron/build')
-rw-r--r-- | evolvotron/build/patches/evolvotron-0.7.1_qt5_crash.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/evolvotron/build/patches/evolvotron-0.7.1_qt5_crash.patch b/evolvotron/build/patches/evolvotron-0.7.1_qt5_crash.patch new file mode 100644 index 00000000..f8bd365c --- /dev/null +++ b/evolvotron/build/patches/evolvotron-0.7.1_qt5_crash.patch @@ -0,0 +1,60 @@ +Index: evolvotron-0.7.1/libevolvotron/mutatable_image_computer_farm.cpp +=================================================================== +--- evolvotron-0.7.1.orig/libevolvotron/mutatable_image_computer_farm.cpp ++++ evolvotron-0.7.1/libevolvotron/mutatable_image_computer_farm.cpp +@@ -72,19 +72,20 @@ void MutatableImageComputerFarm::fasttra + { + QMutexLocker lock(&_mutex); + +- // \todo: Inefficient starting search again each time. Some problem with erase otherwise though, but might have been task abort mem leak. +- TodoQueue::iterator it; +- while ( +- ( +- it=std::find_if(_todo.begin(),_todo.end(),predicate_aborted) +- ) +- != +- _todo.end() +- ) +- { +- _done[(*it)->display()].insert(*it); +- _todo.erase(it); +- } ++ TodoQueue::iterator it = _todo.begin(); ++ ++ while (it != _todo.end()) ++ { ++ if ((*it)->aborted()) ++ { ++ _done[(*it)->display()].insert(*it); ++ it = _todo.erase(it); ++ } ++ else ++ { ++ it++; ++ } ++ } + } + + void MutatableImageComputerFarm::push_todo(const boost::shared_ptr<MutatableImageComputerTask>& task) +@@ -214,7 +215,9 @@ void MutatableImageComputerFarm::abort_f + if ((*it)->display()==disp) + { + (*it)->abort(); +- _todo.erase(it); ++ it = _todo.erase(it); ++ if (it == _todo.end()) ++ break; + } + } + +@@ -234,7 +237,9 @@ void MutatableImageComputerFarm::abort_f + if ((*it1)->display()==disp) + { + (*it1)->abort(); +- q.erase(it1); ++ it1 = q.erase(it1); ++ if (it1 == q.end()) ++ break; + } + } + } |